Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何有效地创建字符串的前缀失败数组?_Python_Python 3.x - Fatal编程技术网

Python 如何有效地创建字符串的前缀失败数组?

Python 如何有效地创建字符串的前缀失败数组?,python,python-3.x,Python,Python 3.x,我需要创建一个大约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 < le

我需要创建一个大约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")
x=input(“::”).replace(“\n”,”).strip()
p=“”
对于范围内的计数(len(x)-1):
计数+=1
myn=0
对于范围内的c(计数):
c+=1
如果x[c:count]==x[:len(x[c:count]),并且myn
有没有办法更有效地做到这一点


编辑:我相信KMP算法可以做到这一点。有人能告诉我怎么做吗?

换句话说,结果字符串应该是什么样子的?因此,在每个字符上,它都会找到以该字符结尾的最长子字符串,该字符也是整个字符串的前缀,不包括从头到尾的明显完整字符串。每个字符串后面都有一个空格。换句话说,结果字符串应该是什么样的?因此,在每个字符上,它都会找到以该字符结尾的最长子字符串,该子字符串也是整个字符串的前缀,不包括从头到尾的明显完整字符串。每个后面都有一个空格。