uva 周期串(求模分组)

Posted csyxdh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uva 周期串(求模分组)相关的知识,希望对你有一定的参考价值。

/*
本题题意求出周期串的最短长度
:eg : hohoho 那么此周期串的长度可以为2 (ho) 同时也可以为 6(hohoho)
  最短长度当然就是2
本题思路:
    求出周期串, 必然存在一个周期, 设定一个循环, i代表周期的长度,
从1递增,最长的长度为字符串的长度 s.size(), 通过周期 将 字符串分组
分组的字符串长度必须为整数, 因此只用考虑整数长度的字符串, 如果存
在字符串所有分组都与第一组的字符相同, 那么此时就满足题意要求,输出
对应的的周期长度 也就是最短的周期串长度,

本题需要注意的是 : 本题输出条件是 输出两个字符串之间需要有两个换行符,
最后一个字符串只有一个换行符
    
*/

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    scanf("%d", &n);
    string s;
    while(n--) {
        cin >> s;
        int i = 1;
        for(;i <= s.size(); i++) { // 设定字符串的周期 
            bool isfind = true; // 判断是否找到了最短周期串 
            if(s.size() % i == 0) { // 表示能够分组 
                for(int j = i; j < s.size(); j++) {
                    // 判断此时的字符是否与第一组字符串中的字符相同 
                    if(s[j] != s[j % i]) { // 如果不同 
                        isfind = false;
                        break;
                    }
                }
            if(!isfind)
                continue;
            break;
            }
        }
        printf("%d
%s", i,n == 0 ?  "":"
");
    }
    return 0;
}

 

 

以上是关于uva 周期串(求模分组)的主要内容,如果未能解决你的问题,请参考以下文章

UVa455 周期串

习题3-4 周期串 UVa455

(UVA)455 --Periodic Strings(周期串)

UVA455Periodic Strings(最小周期串)

UVA455 周期串(Periodic Strings)

算法竞赛入门经典题解——第三章 3-4 周期串UVa455