看这个看懂的
另外参考这篇文章
计算那个next的时候确实有点难懂,但是看完这个博客下面那个图的时候我算是明白了,计算next值的k=next[k]和匹配的j=next[j]其实是一个意思,只不过一个是拿自己匹配自己,另外一个是拿主串匹配模式串。
其实要说懂了吧,也不是很透彻,但也不知道有什么办法能够加深对它的理解了。
另外还有一点,next里的值是P串(模式串)的,并非是主串。(确实也只需要模式串的值,因为你都匹配成功了,前面都有几个一样的了,计算模式串的显然正确点,主串反而会被前后干扰)
至于前缀后缀,相信下面这个图说的再清楚不过了,最后一列整体往下挪动,第一位改为-1就是next数组里的值了
KMP算法
最新推荐文章于 2023-01-23 18:57:44 发布