2017-11-13 3 views
-1
def cyclic(lst1,lst2): 
    a=lst1 
    b=lst2 
    if a == b: 
     return True 
    if a != b: 
     return False 

こんにちは、私はPythonで2つのリスト(lst1、lst2)が同じ巡回順序を持っているかどうかをチェックする関数を書いています。 [はいの場合、関数はTrueを返し、そうでなければFalseを返します。 私は既にリストが同一かどうかを確認することができました。 しかし、私は巡回順序を確認する必要があります。 [0,1,2,3] と[3,0,1,2]はTrueを返し、[0,1,2,3]と[3,1,0,2]はfalseを返す必要があります。2リストに同じ巡回順序があるかどうかをPythonで確認できますか?

ありがとう!

答えて

0
def cyclic(l1, l2): 
    if len(l1) != len(l2): 
     return False 
    if not l1: 
     return True 
    a = l1[0] 
    for i, x in enumerate(l2): 
     if a == x: 
      if l1 == l2[i:] + l2[:i]: 
       return True 
    return False 

は、ここでは、l1[0]に一致する要素を探してl2の要素を歩きます。 1つを見つけると、要素が正面になるようにリストを回転させ、2つのリストを比較します。

関連する問題