摘要:
数据结构 KMP 算法实现
KMP 算法关键是要求出next数组下面是求next数组的算法
n利用next[0]= -1,…,next[i] 求next[i+1] 的算法:
假设 k =next [i],
1) 若pk = pi, 则 p0… pi-k…pi 中最大相同前后缀长度为next[i+1] = k+1
2)若pk ¹ pi ,置 k=next[k] ,然后转到 第1步.
(设 k = next[k],就是考虑前一个更短的匹配前缀,从那里继续向下检查)
3)若 k 值(来自next)为-1,就得到p0… pi-k…pi中最大相同前后缀的长度为k = 0(即next [i+1] = 0) 阅读全文