| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
我没用kmp做的,不知道为什么老师run time error,有空的好心牛帮我看看呀#include <stdio.h>
#include <string.h>
int cal(char *str){
int count[128],min,a,n=1,j,k;
memset(count,0,sizeof(count));
int i=0;
while(str[i]!='\0'){
count[str[i]]++;
i++;
}
i=0;min=1000100;
while(i<128){
if(count[i]!=0&&count[i]<min)min=count[i];
i++;
}
a=strlen(str);
i=1;
int m=min;
while(min&&i++){
if(a%min!=0){
while(min%i)i++;
min=m/i;
continue;
}
bool flag=true;
for(j=1;j<min;j++){
for(k=0;k<a/min;k++){
if(str[k+j*a/min]!=str[k+(j-1)*a/min]){flag=false;break;}
}
if(!flag)break;
}
if(flag)return min;
else{
while(min%i)i++;
min=m/i;
}
}
return 1;
}
void main(){
char str[1000100];
scanf("%s",&str);
while(strcmp(str,".")!=0){
printf("%d\n",cal(str));
scanf("%s",&str);
}
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator