KMP算法
文章图片
【KMP算法】next[j]前面的字符和j前面的字符是相同的。
当不匹配时,i不移动,j向前指向next[j]。此时再对s1[i]和s2[j]进行比较即可,前面的已经匹配了。
int kmp(string s, string p, vector next){
int slen=s.length(), plen=p.length();
int i=0,j=0;
while(i
求next[]:

文章图片
vector getNext(string p){
int len=p.length();
vector next(len,0);
next[0]=-1;
//第一个元素就不匹配,j不能往前跳了,将其设为-1,作为一个标记
int i=0,j=next[i];
while(i
推荐阅读
- 宽容谁
- 一个人的旅行,三亚
- 第6.2章(设置属性)
- 布丽吉特,人生绝对的赢家
- 家乡的那条小河
- 讲述,美丽聪明的海欧!
- PMSJ寻平面设计师之现代(Hyundai)
- 夜游宫|夜游宫 心语
- 增长黑客的海盗法则
- 画画吗()