寻找关于我的代码和想法是否有效的建议,或者我应该尝试不同的方法。我不是在寻找完整的答案,而是在寻找提示。一个简单的“继续/尝试”或“尝试其他东西”就足够了。
我有两个函数参数,都是列表。它们的长度必须相等才能进行比较,否则程序返回 False。
index 中的对象i
被移动到 index (i+m)%k
,其中k
是列表的长度,以及m
index 中的项目移动了多少i
。
我的想法是这样的:
从长度的两个列表中k
,我会单独检查每个索引,如果发现索引已经移动(i+m)%k
,它会添加1
到计数器中。
大小为 3 的列表有 3 种循环排列的可能性,因此如果计数器命中3
,它将返回 a True
。
def cyclic(lst1, lst2):
number_success = 0
if len(lst1) == len(lst2): # checks to see if lists are equal length
for i in range(len(lst1)): # starts with i index to check each spot
for j in range(len(lst1)): # starts with j index to test cycling
if lst1[i] == lst2[(i+j)%len(lst1)]:
number_success += 1
else:
continue
if number_success == len(lst1):
return(True)
else:
return(False)
else:
print("idiot")