程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 算法競賽入門經典 5.1.3 周期串

算法競賽入門經典 5.1.3 周期串

編輯:C++入門知識

算法競賽入門經典 5.1.3 周期串


5.1.3 周期串

如果一個字符串可以由某個長度為k的字符串重復多次得到,我們說該串以為周期。例如,abcabcabcabc以3為周期(注意,它也以6和12為周期)。輸入一個長度不超過80的串,輸出它的最小周期。

樣例輸入:HoHoHo

樣例輸出:2


#include 
#include 
#include 


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變量的使用及是否是否為周期的判斷

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved