zoukankan      html  css  js  c++  java
  • uva 445

    你想想,如果这个串的长度,本身是个质数,例如:7,那么我们肯定可以说,这个串一定,要么是用 1 循环,要么用 本身最长(7)循环,我们所以知道,这题从找因数入手。

    好,我们一旦找到了一个因数,比如,长度是 8,我们第一个找到 1,于是,1 和 2,3,4,5,6,7,8 位置的比较,1必须它们都相同,否则找下一个因数

                                                                                    第二个找到     2,于是// 1,2// 位置 和  // 3,4 //5,6//7,8// 一组一组比较,必须完全匹配,

                                                                                     以此类推

    代码如下:

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int main(){
     4     int n;
     5     cin>>n;
     6     while(n--){
     7         string s;
     8         cin>>s;
     9         int len=s.size();
    10         for(int i=1;i<=len;i++)
    11         {
    12             int flag=1;
    13             if(len%i==0)
    14             {
    15                 for(int j=i;j<len;j++){ 
    16                     if(s[j%i]!=s[j])
    17                     {
    18                         flag=0;
    19                         break;
    20                     }
    21                 }
    22                 if(flag==1)
    23                 {
    24                     cout<<i<<endl;
    25                     break;
    26                 }
    27             }
    28         }
    29     if(n) cout<<endl;
    30     }
    31 }

     注意不是最后一组的话,打个换行。

  • 相关阅读:
    线性代数回顾+深化(未完成版)
    HIT OS2020 Spring Lab2
    选择
    工业互联网
    leetcode-200 岛屿数量
    记网易面试题<二>
    记网易面试题《一》
    leetecode-14-最长公共子串-简单
    leetcode-1012 至少有1位重复的数字
    协程
  • 原文地址:https://www.cnblogs.com/3532gll/p/9400339.html
Copyright © 2011-2022 走看看