KMP

题目

leetcode 28

 

算法思想

假设主串为S,模式串为P,现在匹配S[i]!=P[j],也就是说S[i-j~i-1]==P[0~j-1],记为T 。现在的问题可以描述为我们把向前移动T的位置后和没移动前的T做匹配,即找到一个最大k(k<j-1)使得T[0~k]==T[j-k-1~j-1],即T的最长的前缀匹配后缀的地方(注意:这些前缀和后缀都要小于T)。

参考博客

https://www.cnblogs.com/ZuoAndFutureGirl/p/9028287.html

https://www.cnblogs.com/dusf/p/kmp.html

https://www.cnblogs.com/huifeidezhuzai/p/9222366.html

C++实现

https://www.cnblogs.com/renjiashuo/p/6896062.html

posted @ 2019-06-30 23:00  AI_Engineer  阅读(57)  评论(0)    收藏  举报