Description
Input
Output
Sample Input
abcd
aaaa
ababab
.
Sample Output
1
4
3
分析:此题主要考察字符串模式匹配算法即KMP算法;
代码:
#include <iostream> #include <cstring> #include <algorithm> using namespace std; char s[1000000]; int len,next[1000000]; void get_next() { int i,j; i=1; next[1]=0; j=0; while(i<len) { if(j==0||s[i]==s[j]) { ++i; ++j; next[i]=j; } else j=next[j]; } }
int main() { int k; while(cin>>s) { if(s[0]=='.') break; len=strlen(s); get_next(); if(len%(len-next[len])==0) { k=len/(len-next[len]); cout<<k<<endl; } else cout<<1<<endl; } return 0; }