我需要创建一个大约100000个字母长的字符串的失败数组,但我的代码似乎需要永远运行。
x = input("::").replace("\n","").strip()
p = ""
for count in range(len(x)-1):
count+=1
myn = 0
for c in range(count):
c+=1
if x[c:count] == x[:len(x[c:count])] and myn < len(x[c:count]):
myn = len(x[c:count])
break
p += str(myn)+" "
print(p+"0")
有没有办法更有效地做到这一点?
编辑:我相信称为KMP算法的东西会这样做。有人能告诉我怎么做吗?