备战省赛--周期串plus

版权声明:转载请附上原文链接哟! https://blog.csdn.net/weixin_44170305/article/details/89742475

如花美眷,似水流年,回得了过去,回不了当初。

题目描述

如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期。例如abcabcabcabc以3为周期(当然他也以6,12为周期)。输入一个长度不超过100000的串,输出他的最小周期。

输入

多组测试数据,每组仅一行为一个仅有大写字母组成的字符串。

输出

对于每组数据输出该字符串的最小周期。

样例输入

复制样例数据

HOHO

样例输出

2
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    string sh;
    while(cin>>sh)
    {
        int len=sh.size(),i,n,j;
        for(i=1;i<len;i++)
        {
            n=1;
            if(len%i!=0)
            continue;
            for(j=i;j<len;j++)
            {
                if(sh[j]!=sh[j-i])
                {
                    n=0;
                    break;
                }
            }
             if(n)
            break;
        }
       if(n)
        cout<<i<<endl;
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_44170305/article/details/89742475