KMP找最小循环节 一:kmp模板:其中next【0】=0 #define KMP_GO(X) while(k>0 && P[k]!=X[i]) k=next[k];if(P[k]==X[i])k++ //求字符串P在T中出现的次数 int kmp_match(char*T,char*P){ int n,m,next[10010],i,k,c; n=strlen(T);m=strlen(P); next[1]=k=0; for(i=1;i<m;i++){ KMP_GO(P); next[i+1]=k;//这里i表示的是字符的索引,对应的长度i+1 } k=c=0; for(i=0;i<n;i++){ KMP_GO(T); if(k==m){ c++; k=next[