ababc 的 next 表长什么样
一段文本 abababcababcabababc(19 个字符,下标从 0 起)和一个模式 ababc:把模式的 next 表算出来:
T = "abababcababcabababc"
P = "ababc"
def build_next(p):
f = [0] * len(p)
k = 0
for i in range(1, len(p)):
while k and p[i] != p[k]:
k = f[k - 1]
if p[i] == p[k]:
k += 1
f[i] = k
return f
print("/".join(str(x) for x in build_next(P)))
全部评论