标签:math iostream 串匹配 oid class highlight queue cstring 字符
#include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<queue> using namespace std; char s[400001]; int len,next[400001],sum[400001]; void get_next(int len){ 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 main(){ while(scanf("%s",s)!=EOF){ int k=0; len=strlen(s); get_next(len); for(int i=len;i!=0;){ sum[k++]=next[i]; i=next[i]; } for(int i=k-2;i>=0;i--){ printf("%d ",sum[i]); } printf("%d\n",len); } return 0; }
通过KMP算法来处理字符串匹配的问题。
最好用优化版的代码,适用面广--佚名。
POJ2752--Seek the Name, Seek the Fame
标签:math iostream 串匹配 oid class highlight queue cstring 字符
原文地址:https://www.cnblogs.com/xiongchongwen/p/11135499.html