美文网首页
UVA455 周期串 2020-4-13

UVA455 周期串 2020-4-13

作者: 茶酒qqq | 来源:发表于2020-04-13 21:50 被阅读0次

题目:https://vjudge.net/problem/UVA-455
看了评论区的方法,由于给的串肯定是完整周期的,因此环绕起来就是更多周期的串。利用类似周期图像平移N个周期图像不变的方法,从T=1开始测试,所有字符通过测试时的T就是正确周期。
关键步骤: if(str[i]==str[(i+t)%len])
另:需要看清楚题目要求的输入输出格式,此题要求每个结果间空一行(除了最后一行)

//周期串,使用环形串的方法求解
#include<iostream>
#include<cstring>
using namespace std;
int main(void)
{
    int N;
    cin>>N;
    string str;

    while(N--){
        cin >> str;
        int len = str.size();
        int t=1;
        while(1){
            int c = 0;
            for (int i = 0;i<len;i++)
            {
                if(str[i]==str[(i+t)%len])
                    c++;
            }
            if(c==len)
                break;
            t++;
        }
        cout << t << endl;
        if(N!=0)
            cout << endl;
    }
    
    // system("pause");
    return 0;
}

相关文章

网友评论

      本文标题:UVA455 周期串 2020-4-13

      本文链接:https://www.haomeiwen.com/subject/aeeomhtx.html