标签:
void Makenext(int m) { nxt[0]=-1; int i=0,j=-1; while(i<m) { if(j==-1||p[i]==p[j]) { i++,j++; if(p[i]!=p[j])nxt[i]=j; else nxt[i]=nxt[j]; } else j=nxt[j]; } } int kmp(int n,int m) { int i=0,j=0; while(i<n&&j<m) { if(t[i]==p[j]||j==-1) i++,j++; else j=nxt[j]; } if(j==m) return i-m+1; else return -1; }
标签:
原文地址:http://www.cnblogs.com/wuxinganchu/p/5734046.html