判断一个字符串是否为周期串,如果是的话输出去最小周期,否则输出串长。
方法:从s[1]开始判断是否为周期串,如果是的话得到的下标 i 就是最小周期直接输出即可。
判断的方法自然是看从j = i 开始判断s[j-i]与s[j]是否一直相同。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#define maxn 82
int a[10] = {0};
int main()
{
int t,flag = 0;
scanf("%d",&t);
int ch = getchar();
while(t--)
{
char s[maxn];
scanf("%s",s);
int chh = getchar();
int i,l = strlen(s),ll,j;
for( i = 1; i < l; i++)
{
if(s[i] == s[0] && l%i == 0)
{
j = i;
while(j < l)
{
if(s[j] == s[j - i])
j++;
else break;
}
if(j == l)
{
printf("%d\n",i);
if(t) printf("\n");
break;
}
}
else continue;
}
if(i == l)
{
printf("%d\n",l);
if(t) printf("\n");
}
}
return 0;
}