首页 > 编程语言 > 详细

自主问题--KMP算法

时间:2019-11-23 22:40:17      阅读:87      评论:0      收藏:0      [点我收藏+]

再预处理数组时p[i]表示的在模式串前i个字符中前缀和后缀最大公共长度

//例如下模式串
ababa p[
1]=0; p[2]=1; p[3]=2; p[4]=2; p[5]=3;

在kmp时,移动j要用while


 

输入 

char a[10],b[10]; cin>>a+1>>b+1;

KMP时判断字符是否相等要+1

while(j>0&&s1[i+1]!=s2[j+1]) j=p[j];
if(s1[i+1]==s2[j+1])
{
    j++;
}
if(j==m) { printf("%d\n",i-m+2); j=p[j]; }

要预处理匹配串和模式串的长度。

自主问题--KMP算法

原文:https://www.cnblogs.com/mzyczly/p/11920387.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!