KPM算法-字符匹配

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 }
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » KPM算法-字符匹配