习题3-4 周期串(Periodic Strings, UVa455)

来源:互联网 发布:淘宝店主实拍情趣 编辑:程序博客网 时间:2024/05/16 05:53

题目大家应该都有,由于某些原因没去做oj题就看书上的中文题,细节方面没有考虑

这道题目说了对于abcabcabcabc(12也是他的周期)所以如果一个字符串没有内部周期,那答案就是字符串总长;

还有就是一定要对每一个部分都进行判断;abcabcabcdbc这种的周期就是12;


#include <iostream>

#include <string>
using namespace std;

int main()
{
    string s;
    cin>>s;
    int max_T=s.length();
    int T=1;
    while(T<max_T){
        if(max_T/T*T!=max_T) {T++;continue;}    //筛选所有可能成为T的值
        int fg=1;
        for(int i=1;i*T<max_T;i++){
            string c1=s.substr(0,T);
            string c2=s.substr(i*T,T);
            if(c1!=c2) fg=0;        //如果有一个片段不满足则继续循环
        }
        if(fg==1)break;     
        T++;
    }
    cout<<T<<endl;
    return 0;
}

0 0
原创粉丝点击