码迷,mamicode.com
首页 > 编程语言 > 详细

KMP算法总结

时间:2015-07-15 16:30:22      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:

KMP里里外外学了很多遍,然后从一位大牛那里学到了比较易懂的理解方法。

博客链接:http://www.matrix67.com/blog/archives/115

 

唉~KMP算法Next数组强大无比。

Next数组:

技术分享
 1 //next数组的求法
 2 void getNext(int len)
 3 {
 4     int i=0,j=-1;
 5     Next[0]=-1;
 6     while(i<len)
 7     {
 8         if(j==-1||s[i]==s[j])
 9         {
10             i++;
11             j++;
12             Next[i]=j;
13         }
14         else
15             j=Next[j];
16     }
17 }
View Code

模式匹配:

技术分享
 1 int find(int len1,int len2)
 2 {
 3     int i=0,j=0;
 4     int sum=0;
 5     while(j<len2&&i<len1)
 6     {
 7         if(j==-1||b[j]==a[i])
 8         {
 9             i++;j++;
10         }
11         else
12         {
13             j=Next[j];
14         }
15         if(j==len2)
16          {
17          sum++;
18          j=0;
19          }
20     }
21     return sum;
22 }
View Code

推荐题目:HDU 1711  HDU 1686 HDU 2087 HDU 3746

hust里的kuangbin专题

KMP算法总结

标签:

原文地址:http://www.cnblogs.com/ikids/p/4648515.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!