#include <stdio.h>
#include 
<stdlib.h>
#include 
<string.h>

char str [1000010];
int  next[1000010];
    
int getnext()
{
    
int i= 0, j= -1; next[0]= -1;
    
    
while( str[i] )
    {
        
if( j== -1 || str[i]== str[j] )
        {
            
++i,++j;
            next[i]
= j;
        }
        
else j= next[j];
    }
    
    
int len= strlen(str);
    i
= len- j;
    
    
if( len% i== 0 ) return len/ i;
    
else return 1;
}

int main()
{
    
while( gets( str), str[0]!= '.' )
    printf(
"%d\n", getnext() );
    
    
return 0;
}
posted on 2009-02-07 17:52 Darren 阅读(571) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理