zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    Oulipo
    伊吹萃香 (Standard IO)
    雾雨魔理沙 (Standard IO)
    帕秋莉·诺蕾姬 (Standard IO)
    射命丸文 (Standard IO)
    家庭作业 (Standard IO)
    数字游戏 (Standard IO)
    asp.net后台正则表达式验证手机号码邮箱
    ASP.NET实现Cookie功能的三个基本操作(写入,读取,删除)
    C# DateTime 月第一天和最后一天 取法
  • 原文地址:https://www.cnblogs.com/csyxdh/p/12028461.html
Copyright © 2011-2022 走看看