一.KMP算法简介
Knuth-Morris-Pratt 字符串查找算法,简称为 “KMP算法”,常用于在一个文本串S内查找一个模式串P 的出现位置,这个算法由Donald Knuth、Vaughan Pratt、James H. Morris三人于1977年联合发表,故取这3人的姓氏命名此算法。
二.算法流程
假设现在文本串s匹配到i位置,匹配串匹配到j位置
>>若当前字符匹配成功(即s[i]==p[i]),都令i++,j++,继续匹配下一个字符
>>若当前字符匹配失败(即s[i]!=p[i]),则令i不变,j=next[j]。此举意味着失配时,模式串p相对于文本串s向右移动了j-next[j]位
next数组各值的含义:代表当前字符之前的字符串中,有多大长度的相同前缀后缀
三.算法实现
四.参考
http://blog.csdn.net/v_july_v/article/details/7041827
http://blog.csdn.net/tkd03072010/article/details/6824326