Python|检查两个列表是否遵循相同的模式
给定两个列表和 ,检查它们是否遵循相同的模式。
模式匹配的条件:
- > , 然后 >
- = , 然后 =
- < , 然后 < ,
对于所有 i,j。
例子:
Input:
2 17 100
10 20 50
Output:
YES
Input:
5 7 10 33
10 50 10 45
Output:
NO
方法:
检查两个列表是否遵循上述模式。对两个列表进行排序并在排序列表中查找前一个列表元素的索引。如果索引匹配,则模式匹配,否则没有模式匹配。
代码:用于检查模式的Python程序。
# python program for above approach
a = [5, 7, 10, 33]
b = [10, 50, 10, 45]
aa = a.copy()
bb = b.copy()
# sorting the list
aa.sort()
bb.sort()
for i in range(len(a)-1):
# checking the index are same or not
if aa[i] < aa[i + 1] and bb[i] < bb[i + 1]:
if a.index(aa[i])== b.index(bb[i]) and a.index(aa[i + 1]) == b.index(bb[i + 1]):
flag ="YES"
else:
flag ="NO"
break
elif aa[i] == aa[i + 1] and bb[i] == bb[i + 1]:
if a.index(aa[i]) == b.index(bb[i]) and a.index(aa[i + 1]) == b.index(bb[i + 1]):
flag = "YES"
else:
flag = "NO"
break
else:
flag = "NO"
break
print(flag)
输出 :
NO