KPM算法-字符匹配
字符匹配模式-KMP算法



![]()
![]()

![]()
![]()

j直接跳到了2的位置,因为在之前的都相同。
那么就需要求如果不等了之后,j需要回跳的位置next[j]










如果tk”与tj相等,则next [j+1]=k”+1
如果tk‘与tj不相等,则继续向前找,直到找到next[0]=-1为止
注意:t是从0下标开始
1 void getnext(string t)
2
3 {
4
5 int j=0,k=-1;
6
7 int len=t.size();
8
9 next[0]=-1;
10
11 wihle(j<len)
12
13 {
14
15 if(k==-1||t[j]==t[k])
16
17 next[++j]==++k;
18
19 else
20
21 k=next[k];
22
23 }
24
25 }


