kmp算法的弱化版本 mp算法

来源:互联网 发布:淘宝号可以注销吗 编辑:程序博客网 时间:2024/05/16 17:54

训练指南p211

int f[1000006];// 建立失配函数  p为模板串void getfail(char *p){int m=strlen(p);f[0]=0;f[1]=0;for(int i=1;i<m;i++){int j=f[i];while(j&&p[i]!=p[j]) j=f[j];f[i+1]=p[i]==p[j]?j+1:0;}}//t为要匹配的字符串  p为模版串int kmp(char *t,char *p){int n=strlen(t),m=strlen(p);getfail(p);int j=0;int ans=0;for(int i=0;i<n;i++){while(j&&p[j]!=t[i]) j=f[j];if(p[j]==t[i]) j++;if(j==m) ans++;//找到了}return ans;}


原创粉丝点击