水题一个,读懂题目就很简单了,很水很水的题,这个题是先判断 i 是否是字符串len的约数,然后再进行判断是否重复。
另外一种思路就是,先判断相似的位数,只需要进行len/2次,再判断是不是len的约数,理论上可行,但是我WA了,没有查出是为什么。
下面是 AC的代码
#include<stdio.h>
#include<string.h>
int main()
{
int n;
scanf("%d",&n);
getchar();
while(n--)
{
getchar();
char a[85];
gets(a);
int len = strlen(a);
int i,j,out=0;
for(i=1;i<=len;i++)
{
if(len%i==0)
{
out=1;
for(j=i;j<len;j++)
if( a[j] != a[j%i])
out=0;
}
if(out) break;
}
if(out) printf("%d\n",i); else printf("%d\n",len);
if(n) printf("\n");
}
return 0;
}