週期串問題

2021-10-01 11:18:19 字數 581 閱讀 5466

如果乙個字串可以由某個長度為k的字串重複多次得到,則該串以k為週期。例如,abcabcabcabc以3為週期(注意,它也以6和12為週期)。

輸入乙個長度不超過80的串。

輸出它的最小週期。

abcabcabcabc

定義兩個陣列a,b;輸入字串存入a中,把a中的字串拷貝到b中,然後利用for迴圈找到b[0]對應在a中的位置i,然後呼叫自己定義的compare函式,compare函式原理:傳入引數兩個陣列a,b,和乙個變數值i,從b[0]開始與a[k]比較,a[k]一開始是b[0]在a中對應的位置,如果一直相等則最後返回1,如果不相等則返回0;進入main函式,如果都為1,說明相等,則是以k為最小週期的週期串

#include

#include

#define x 100

intcompare

(char b,

char a,

int i)

return1;

}int

main()

}}return0;

}

週期串問題

有一類題目 乙個字串可以由某個長度為k的字串重複多次得到,該串以k為週期。例如,abcabcabcabc以3為週期,也以6和12為週期,那麼如何求它的最小週期?求解這一類的週期性的題目,有個關鍵 周長一定可以被串長整除,故我們無需判斷所有的i len,只需要判斷能被len整除的i 其次,我們的i從小...

週期串問題

include oj.h include using namespace std 功能 計算字串的最小週期。原型 int getminperiod char string 輸入引數 char string 字串。返回值 int 字串最小週期。思路 使用i表示字串可能的週期,從週期為1開始逐漸增大1,...

週期串問題 一

題目 題目一 週期串問題 如果乙個字串可以由某個長度為k的字串重複多次得到,我們說該串以k為週期。例如,abcabcabcabc以3為週期 注意,它也可以6和12為週期,結果取最小週期3 如下 include include using namespace std int getminperiod ...