gpt4 book ai didi

string - KMP 的失效函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:53:28 26 4
gpt4 key购买 nike

最近学习了KMP字符串匹配算法,差不多搞定了。但我不明白的是如何在 O( length_of_pattern ) 中构建故障函数。我不需要代码,如果可能,我需要一个清晰的解释。提前致谢!

最佳答案

来自 this site :

KMP 算法通过计算失效函数 f 来预处理模式 P,该失效函数表示使用先前执行的比较的最大可能偏移 s。

具体来说,失效函数 f(j) 被定义为 P 的最长前缀的长度,它是 P[i 的后缀。 . j].

这里是构造的伪代码,我想你可以在网站上得到详细的解释

        KNUTH-MORRIS-PRATT FAILURE (P)

Input: Pattern with m characters
Output: Failure function f for P[i . . j]

i ← 1
j ← 0
f(0) ← 0
while i < m do /// your complexity will be O(length of pattern)
if P[j] = P[i]
f(i) ← j +1
i ← i +1
j← j + 1
else if (j != 0)
j ← f(j - 1)
else
f(i) ← 0
i ← i +1

希望它能回答你的问题

关于string - KMP 的失效函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6594072/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com