这里简单存一下kmp算法代码
详细思路以后补上
inline void getnxt(){ for(int i=2,j=0;i<=n;i++){ while(j&&b[i]!=b[j+1]) j=nxt[j]; j+=(b[i]==b[j+1]); nxt[i]=j; } }inline void kmp(){ for(int i=1,j=0;i<=n;i++){ while(j&&a[i]!=b[j+1]) j=next[j]; j+=(a[i]==b[j+1]); if(j==m) printf("%d",i-m+1); }}