标签:kmp efi while || pre ext class fine span
#define N 1000005 int next[N]; char s[N]; int slen; void getNext() { int j=0,k=-1; next[0] = -1; while(j < slen) { if(k == -1 || s[j] == s[k]) next[++j] = ++k; else k = next[k]; } } int main() { while(scanf("%s",s),s[0]!=‘.‘) { slen=strlen(s); getNext(); int l=1; if(slen%(slen-next[slen])==0) l=slen/(slen-next[slen]); cout<<l<<endl; } }
标签:kmp efi while || pre ext class fine span
原文地址:https://www.cnblogs.com/ww123/p/8981589.html