2014年1月7日 星期二

[ZJ] a223. 10298 - Power Strings


#include<stdio.h>
#include<string.h>
char s[1000005];
int p[1000005];
int main(){
    int i,j,k,len,ans;
    while(scanf("%s",s)!=EOF){
        if(strcmp(s,".")==0) break;
        len=strlen(s);
        p[0]=-1;
        for(i=1;i<len;i++){
            j=p[i-1];
            while(s[j+1]!=s[i] && j>=0)
                j=p[j];
            if(s[j+1]==s[i]) p[i]=j+1;
            else p[i]=-1;
        }
        ans=1;
        if(len%(len-p[len-1]-1)==0)
            ans=len/(len-p[len-1]-1);
        printf("%d\n",ans);
    }
}

沒有留言:

張貼留言