1、字符串类的水题。
2、给出的字符串长度一定为重复字符串长度的倍数,只需要验证每组循环开头的第一个字符是否一样即可。设置flag标记,一路读到最后一组循环且flag=1,成立,flag=0则不成立。
3、注意最后题目要求的格式输出。
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int n;
char line[100];
while(cin>>n) {
while(n--) {
scanf("%s",line); //输入字符串
int len=strlen(line); //字符串长度
for(int i=1;i<=len;i++) {
if(len%i==0) { //i即为可能重复字符串的长度
int j;
for(j=i;j<=len;j++) {
if(line[j]!=line[j%i])
break; //循环组的对应字符是否相同,相同则继续循环,不相同则
} //跳出循环
if(j==len) {
cout<<i<<endl; //检查循环是否能到字符串结束,是则对应i为重复长
break; //度,否则i不是
}
}
}
if(n) cout<<endl; //一定不能忽略题目的输出要求
}
}
return 0;
}