hoj1952 power string

/*This Code is Submitted by billforum for Problem 1952 at 2012-06-08 15:39:09*/
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <vector>
#include <exception>
#include <cstring>
#include <stdlib.h>
using namespace std;
const int Len=1000000;
int next[Len+5];
void getNext(int next[],char str[])
{
        int len=strlen(str);
        int i=0,j=-1;
        while(i<len)
        {
                if((j==-1)||(str[i]==str[j]))
                {
                        j++;
                        i++;
                        next[i]=j;
                }
                else j=next[j];
        }
        
        
        return;
}
void print(int next[],int len)
{
        for(int i=0;i<len;i++)
                printf("%d ",next[i]);
}
int cmp(char s1[],char s2[])
{
        int i=0,j=0;//i->s1,j->s2
        int len1=strlen(s1),len2=strlen(s2);
        int times=0;
        while(i<len1)
        {
                if((j==-1)||(s1[i]==s2[j]))
                {
                        i++;
                        j++;
                        if(j>=len2) 
                        {
                                j=0;
                                times++;
                        }
                }
                else j=next[j];
        }
        return times;
}
int main(int argc, char **argv)
{
        
        char str1[Len+5];
        memset(next,0,sizeof(next));
        next[0]=-1;
        while(scanf("%s",str1)==1)
        {
                if(strcmp(str1,".")==0) break;
                int len1=strlen(str1);
                
                str1[len1]='.';
                str1[len1+1]='\0';
            
                getNext(next,str1);
                 len1=strlen(str1);
                //print(next,len1);
                //cout<<endl;
                if((len1-1)%(len1-1-next[len1-1])==0)
                        printf("%d\n",(len1-1)/(len1-1-next[len1-1]));
                else printf("1\n");
                
        }
        return 0;
}
 

  

posted @ 2012-06-08 15:42  wuzhibin  阅读(221)  评论(0)    收藏  举报