首页 > 编程语言 > 详细

KMP算法总结

时间:2015-07-15 16:27:26      阅读:126      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!