#include好久没写博客了,今天上午看了一上午KMP,终于搞懂了,不知道KMP的请看转载的几篇博#include #include #include using namespace std;int next[1010];void getnext(int len,string s){ int i=0,j=-1; next[0]=-1; while(i<=len){ if(j==-1||(s[i]==s[j])){ i++,j++; next[i]=j; } else j=next[j]; }}int KMP(string sy,int lensy,string sp,int lensp){ int i=0,j=0; while(i >st>>p; int lenst=st.length()-1,lenp=p.length()-1; getnext(lenst,st);//求next数组; n=KMP(st,lenst,p,lenp);//求第几位开始匹配; for(i=0;i<=lenst;i++)cout< <<" "; cout< < <