如果一个字符串可以由某个长度为k的字符串重复多次得到,就可以说该串以k为周期。例如,abcabcabcabc以3为周期(注意,他也以6和12为周期)。
输入一个长度不超过80的字符串,输出它的最小周期。
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main(){
string s;
cin>>s;
for(int i=1;i<=s.size();i++){
if(s.size()%i)continue;
int cnt=1;
for(int j=0;j<s.size();j++){
if(s[j]!=s[j%i]){
cnt=0;
break;
}
}
if(cnt){
cout<<i<<endl;
break;
}
}
return 0;
}
最短周期T需要满足2点条件:
1.必须可以整除字符串的长度
2.s[i]=s[i%T](下标从i从0开始);
然后从1开始枚举T的值纸质满足条件