因为这题的数据比较小,所以可以直接暴力
就 从 1-n 枚举其的长度,如果它成功,那就直接跳出去,
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
char s[100];
scanf("%s",s);
int m = strlen(s), j = 1;
while(j <= m)
{
if(!(m%j)) // 你要周期,至少得是它的倍数八
{
int ok = 1; // 标记是否可以
for (int i = 1; i < m/j;i++) // 次数
{
for (int k = 0; k < j; k++) // 周期长度
{
if(s[k]!=s[i*j+k])
{
ok = 0;
break;
}
}
if(!ok) break;
}
if(ok)
{
printf("%d\n",j);
break;
}
}
j++;
}
if(n) printf("\n");
}
return 0;
}