UVA455 周期串 2020-4-13

题目: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;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,429评论 0 2
  • 一. Java基础部分.................................................
    wy_sure阅读 3,854评论 0 11
  • 前言:由于之前的考试驾照的时候来回奔波二地,所以难免会有几次忘记带耳机了,或者忘记拿哪件衣服了的窘境出现,故而给自...
    小白哥有话说阅读 1,112评论 0 0
  • 进入一个新的环境之后,感觉到自己的变化,从小心翼翼到大大咧咧,从小心谨慎到豪放不羁,不知道这个变化对我来说,是好是...
    裂纹唇阅读 246评论 0 0
  • 今天二美写作班正式结业了,很舍不得大家。因为写作群里面总是洋溢着温馨鼓舞的气氛,大家都会互相赞美,许多人都充拾写作...
    象征阅读 553评论 3 5