#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int sum[30];
char pas[85];
int main()
{
int T;
scanf("%d", &T);
while (T--)
{
int flag = 1;
int MAX = 0;
string s;
cin >> s;
int len = s.length();
pas[0] = s[0];
int lpas = 1;
for (int cnt = 1; cnt < len; cnt++)
{
if (flag == 3)
{
break;
}
//flag = 1;
if (s[cnt] == pas[0])
{
int ans = 1;
/*for (int i = 1; i < lpas; i++)
{
if (s[cnt + i] == pas[i])
{
ans++;
}
else
{
//MAX = max(MAX, ans);
break;
}
/*if (s[cnt + i] != pas[i])
{
ans = max(ans, lpas);
break;
}
}*/
flag = 1;
if (len % lpas != 0)
{
flag = 0;
pas[lpas] = s[cnt];
lpas++;
continue;
}
for (int j = 1; j < len; j++)
{
if (s[j] != pas[j % lpas])
{
flag = 0;
pas[lpas] = s[cnt];
lpas++;
break;
}
}
if (flag == 1)
{
MAX = max(MAX, lpas);
flag = 3;
break;
}
}
else
{
pas[lpas] = s[cnt];
lpas++;
}
}
if (MAX == 0)
{
printf("%d\n", len);
}
else printf("%d\n", MAX);
if (T != 0)
{
printf("\n");
}
}
return 0;
}
一道水题啊,但是我调了两节课qnq
一看字符串长度<80我就开始乱搞,结果怎么搞怎么出错,flag都已经插到3了,别问我2去哪了= =
(感觉这道题只有三个测试点,要是多的话可能还会WA)
说有个比较简单的解法是枚举长度,看看能不能整除,如果能的话再检验,蓝而我没想到。