習題3-4 週期串(Periodic Strings, UVa455)
阿新 • • 發佈:2019-02-19
如果一個字串可以由某個長度為k的字串重複多次得到,則稱該串以k為週期。例 如,abcabcabcabc以3為週期(注意,它也以6和12為週期)。
#include "OJ.h" #include <string.h> /* 功能:計算字串的最小週期。 */ int GetMinPeriod(char *inputstring) { /*在這裡實現功能*/ int len = strlen(inputstring); for(int i = 1; i <= len; ++i) { if (len % i == 0) { // 週期必然要滿足len%i==0 int ok = 1; for(int j = 0; j+i< len; ++j) { // 各週期間字元比較 if(inputstring[j] != inputstring[j+i]) { ok = 0; break; } } if (ok) { return i; } } } return 0; }