思路:枚举循环节(循环节要能被字符串长度整除),进行循环判断,找到第一组解就是最小解。
#include <bits/stdc++.h>
#include<stdio.h>
using namespace std;
char a[1005];
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int i,j;
scanf("%s",a);
for(i=1;i<=strlen(a);i++){ //枚举周期串
if(strlen(a)%i==0){
for(j=i;j<strlen(a);j++){
if(a[j]!=a[j%i])break;
}
}
if(j==strlen(a)){
printf("%d\n",i);
break;
}
}
if(t)printf("\n");
}
return 0;
}