您的位置:首页 > 其它

周期串-Periodic Strings,UVa455

2018-01-25 09:42 225 查看
如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期。例如,abcabcabc以3为周期(注意,它也以6和12为周期)。输入一个长度不超过80的串,输出它的最小周期。

样例输入:abcabc

样例输出:3

#include<iostream>
using namespace std;

int main()
{
string s;
cin >> s;
int sz = s.length();
for(int i = 2 ; i < sz ; i++)//这个遍历的是k
{
if(sz % i != 0)//减少遍历的情况

{
cout << "不是周期字符串" << endl;
break;
}
for(int j = 1 ; j < sz;j++)//这个遍历的是内部运算
{
if(s[j] == s[j + i])
{
if(j + i == s.length() - 1)
{
printf("%d\n",i);  return 0;
}
}
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: