题面翻译
如果一个字符串可以由某个长度为 k k k 的字符串重复多次得到,则称该串以 k k k 为周期。例如, a b c a b c a b c a b c abcabcabcabc abcabcabcabc 以 3 3 3 为周期(注意,它也以 6 6 6 和 12 12 12 为周期)。
输入一个长度不超过 80 80 80 的字符串,输出其最小周期。
题目描述
输入格式
输出格式
样例 #1
样例输入 #1
1
HoHoHo
样例输出 #1
2
代码:
#include<bits/stdc++.h>
using namespace std;
string s;
int n;
int main()
{
cin>>n;
while(n--)
{
cin>>s;
for(int i=1,k;i<=s.size();i++)
{
if(s.size()%i==0)//如果i可能是字符串的周期
{
for(k=i;k<s.size();k++)//诶个比较
{
if(s[k]!=s[k%i])//如果有一位不相等
{
break;//继续找
}
}
if(k==s.size())//如果k找完了(即i为字符串字符串的周期),满足条件
{
cout<<i<<endl;//输出i
break;//退出循环
}
}
}
if(n>0)//坑点(行末不能有换行)
{
cout<<endl;
}
}
return 0;
}
结束啦~~~