POJ2406【KMP-next数组】

来源:互联网 发布:淘宝买保险可靠吗 编辑:程序博客网 时间:2024/05/01 23:16

关于next的解释原文:点点点

//#include <bits/stdc++.h>#include<cstdio>#include<string.h>#include<algorithm>using namespace std;const int N=1e6+10;char s[N];int Next[N],len;void GetNext(){    int i=0,j=-1;    Next[0]=-1;    while(i<len)    {        if(j==-1||s[i]==s[j])            Next[++i]=++j;        else            j=Next[j];    }}int main(){    while(~scanf("%s",s))    {        if(strcmp(s,".")==0) break;        len=strlen(s);        GetNext();        if(len%(len-Next[len])==0)            printf("%d\n",len/(len-Next[len]));        else            printf("%d\n",1);    }    return 0;}


0 0
原创粉丝点击