週期串問題 二

2021-07-16 12:01:10 字數 568 閱讀 3235

題目:

題目一[週期串問題]

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

**如下:

#include#includeusing namespace std;

int getminperiod(char* string)

int length = 0; //這個地方要記得初始化,不然列印出來長度為負數出來

// while (*string++)

char* p = string;

while (*p++)

bool isreturn = true;

for (int i = 1; i <= length; i++)

for (int j = 0; j < length - i; j++)

} if (isreturn)

} return length;

}int main(){

cout<<"hello wordd"<

結果列印出:3

週期串問題

有一類題目 乙個字串可以由某個長度為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為週期 輸入乙個長度不超過80的串。輸出它的最小週期。abcabcabcabc 定義兩個陣列a,b 輸入字串存入a中,把a中的字串拷貝到b中,然後利用for迴圈找到b 0...