def kmp_match(tex, pat):
n = len(tex)
m = len(pat)
tex = '0' + tex
pat = '0' + pat
pi = []
pi.append(0)
pi.append(0)
p = 0
for i in range(2, m + 1):
while (p) and (pat[p + 1] != pat[i]):
p = pi[p]
if (pat[p + 1] == pat[i]):
p = p + 1
pi.append(p)
p = 0
for i in range(1, n + 1):
while (p) and (pat[p + 1] != tex[i]):
p = pi[p]
if (pat[p + 1] == tex[i]):
p = p + 1
if (p == m):
print i - m + 1
p = pi[p]
tex = 'abbababbabbaaabaabb'
pat = 'aab'
kmp_match(tex, pat)Python - KMP算法
最新推荐文章于 2025-10-18 21:38:27 发布
本文详细阐述了KMP算法的实现过程,并通过一个具体的例子展示了如何使用该算法进行字符串匹配。

988

被折叠的 条评论
为什么被折叠?



