KMP算法
#include<stdio.h> #include<string.h> void sstring(chara,charb)//将一个字符串整体后移一个单位方便后续计算 { int len,i; a[0]=strlen(b); for(i=1;i<=a[0];i++) a[i]=b[i-1]; return; } void get_next(char T,int next) //next函数求法运用了递推的思想,即从广义的某个字符t[i]开始推出普遍规律 其中又再次运用了kmp思想 { int i=1,j=0; next[1]=0; while(i<T[0]) 欧元符号http://www.gendan5.com/currency/EUR.html if(j==0||T[i]==T[j])//j=0意味着无相同前后缀,模式串从首位开始重新与主串匹配 { ++i; ++j; next[i]=j; //这三步可以直接写成 next[++i]=++j; } else j=next[j];//仍然不匹配 模式串右滑 } / void get_next(char T,int next) { int i=1,j=0; next[1]=0; while(i<T[0]) if(T[i]= =T[j]) { ++i; ++j; next[i]=j; } else if(j==0) /