如果我有 2 个字符串s1
和s2
,其中s2
是循环移位的字符串s1
。s1
它需要找到从到的最小可能循环偏移s2
。
让我举个例子:
s1 = 'I love cookies '
s2 = 'cookies I love '
答案是7
。
最好采用线性时间。有我失败的试验:
def find_minimum_cyclic_shift(s1, s2):
if len(s1) != len(s2):
return -1
index = s2.index(s1[0])
if (index > -1):
if (s1==s2):
return 0;
#finalPosition = len(s2) - index
#print(finalPosition, " index=",index)
#return s2[0] == s1[finalPosition] and s1[finalPosition::]==s2[0:index]
return index
但它不适用于 case: absabsabsfand absfabsabs。而不是 4 我有 0. 因为索引函数只返回我第一次出现的字母。
请至少给我一个逻辑来编码它。
拉丁的传说
相关分类