码迷,mamicode.com
首页 > 编程语言 > 详细

算法竞赛入门经典 5.1.3 周期串

时间:2014-12-11 20:54:52      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:编程题目   算法   c++   入门经典   

5.1.3  周期串  

如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以为周期。例如,abcabcabcabc以3为周期(注意,它也以6和12为周期)。输入一个长度不超过80的串,输出它的最小周期。  

样例输入:HoHoHo 

样例输出:2 


#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int main(int argc, char *argv[])
{
  char s[100];  
  scanf("%s", s);
  int len = strlen(s);
  int i;
  for(i = 1; i <= len; i++)
     if(len%i == 0)
     {
        int j, ok = 1;
        for(j = i; j < len; j++)
        {
           if(s[j] == s[j%i]) continue;
           else { ok = 0; break;}
        }      
        if(ok) {printf("%d\n", i); break;};
        
     }
  
  system("PAUSE");	
  return 0;
}

总结  1 strlen不包括最后的空字符

          2 两个循坏里len的边界条件

          3 ok变量的使用及是否是否为周期的判断

算法竞赛入门经典 5.1.3 周期串

标签:编程题目   算法   c++   入门经典   

原文地址:http://blog.csdn.net/oceaniwater/article/details/41871359

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!