点击打开链接
#include <stdio.h>
#include <string.h>
char s [2000000];
int next[2000000];
int main()
{
while(scanf("%s",s)&&s[0]!= '.' )
{
int i=0,j=-1,len;
next[0]=-1;
while(s[i])
{
if(j==-1||s[i]==s[j])
{
i++;
j++;
next[i]=j;
}
else j=next[j];
// printf ("%d ",j);
}
// printf ("\n");
len = strlen(s);
i=len-j;
// printf ("%d %d\n",len,i);
if(len%i==0)
printf ("%d\n",len/i);
else
printf ("1\n");
}
return 0;
}