多次出现的KMP算法

时间:2011-10-19 10:41:24

标签: string algorithm search pattern-matching

是否仍然可以执行O(n)时间复杂度来搜索多次出现的Knuth-Morris-Pratt算法?

1 个答案:

答案 0 :(得分:2)

假设我们有一个字符串S [0,...,N]。回想一下,前缀数组中的第i个条目存储与后缀匹配的S [0,...,i]的最大前缀的长度。 我们可以为模式$ subject计算前缀数组P(假设$ doesn不在主题中出现)。仍然需要找到P [i] == length(pattern)的指数,这可以在线性时间内完成。