週期串問題

2021-06-27 13:32:42 字數 617 閱讀 3180

#include "oj.h"

#include using namespace std;

/*功能:計算字串的最小週期。

原型: int getminperiod(char *string);

輸入引數:

char * string:字串。

返回值:

int 字串最小週期。

思路:使用i表示字串可能的週期,從週期為1開始逐漸增大1,當i滿足是字串的週期時返回;

i滿足是字串的週期的條件:1、將前i個字元儲存,後面所有的字串都與該字串比較,沒有不同的字元

2、所有字串的長度k是i的整數倍

*/int getminperiod(char *inputstring)

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

int k = i ;

while (inputstring[k] != '\0')

k++;

} delete temp;

if (flag == false && k%i == 0)

}return 0;

}int main()

週期串問題

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

週期串問題

如果乙個字串可以由某個長度為k的字串重複多次得到,則該串以k為週期。例如,abcabcabcabc以3為週期 注意,它也以6和12為週期 輸入乙個長度不超過80的串。輸出它的最小週期。abcabcabcabc 定義兩個陣列a,b 輸入字串存入a中,把a中的字串拷貝到b中,然後利用for迴圈找到b 0...

週期串問題 一

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