吸取了上一题的教训,一看字符串长度只有80,那岂不是随便搞?!
没注意输出格式,还WA了两发
代码:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;
int main()
{
int t;
scanf("%d", &t);
while (t--)
{
char word[85];
scanf("%s", word);
int n = strlen(word);
char sub[85];
strcpy(sub, word);
// printf("sub is %s\n", sub);
int ans = n;
bool flag = 0;
for (int i = 1; i <= n; i++)//i表示最小周期串的最后一个字符+1
{
flag = 0;
if (n%i != 0) flag = 1;//没有这个条件会WA
else
{
for (int j = i; j < n; j++)
{
if (word[j] != sub[j%i])
{
// printf("i is %d j is %d\n", i, j);
flag = 1;
break;
}
}
}
if (flag == 0)
{
ans = i;
break;
}
}
printf("%d\n", ans);
if (t > 0)
printf("\n");
}
// system("pause");
return 0;
}