欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【算法竞赛 入门经典】习题3-4 周期串(Uva455)

程序员文章站 2022-04-08 09:13:51
...

一、题目

【算法竞赛 入门经典】习题3-4 周期串(Uva455)

二、解题思路

周期串的长度,应该可以被整个串的长度整除。一一尝试可以被整串长度整除的i,然后尝试将整个串分成一个个长度为i的段。将每段与0-i的对应的内容相对比,看是否相同。

三、代码

#include<stdio.h>
#include<string.h>
char s[85];
int main(){
 int N;
 scanf("%d",&N);
 while(N--){
  memset(s,0,sizeof(s));
  scanf("%s",s);
  int len=strlen(s);
  int i,j;
  for(i=1;i<=len;i++){
   if(len%i==0){
    for(j=i;j<=len;j++){
     if(s[j]!=s[j%i]){
      break;
     }
    }
    if(j==len){
     printf("%d\n",i);
     break;
    }
   } 
  }
  if(N){
   printf("\n");
  }
 }
 return 0;
} 
相关标签: 算法训练