如果乙個字串可以由某個長度為k的字串重複多次得到,則稱該串以k為週期。
例如abcabcabcabc以3位週期(同時它也以6和12為週期)。
輸入乙個長度不超過80的字串,輸出其最小週期。
1、字串長度可以整除週期
2、如果乙個字串以t為週期,那麼在字串範圍內,存在
s[i]
= s[i+t]
;
可以使用窮舉的方式來進行尋找。
#include
"stdlib.h"
#include
using
namespace std;
int n, len, ans;
string s;
bool
test
(int t)
return
true;}
intmain
(int argc,
char
* ar**)
} cout << ans
("pause");
return0;
}
本題的關鍵在於理解兩點:
1、字元型長度必須整除週期;
2、s[i] = s[i+t]。
滿足上述兩點的最小週期即為所求。
藍橋杯 週期字串 字串處理
演算法提高 週期字串 時間限制 1.0s 記憶體限制 256.0mb 問題描述 右右喜歡聽故事,但是右右的媽媽總是講一些 從前有座山,山里有座廟,廟裡有個老和尚給小和尚講故事,講的什麼呢?從前有座山 這樣迴圈的故事來搪塞右右。我們定義,如果乙個字串是以乙個或者乙個以上的長度為k的重複字串所連線成的,...
週期串plus(字串演算法)
題目描述 如果乙個字串可以由某個長度為k的字串重複多次得到,我們說該串以k為週期。例如abcabcabcabc以3為週期 當然他也以6,12為週期 輸入乙個長度不超過100000的串,輸出他的最小週期。輸入 多組測試資料,每組僅一行為乙個僅有大寫字母組成的字串。輸出 對於每組資料輸出該字串的最小週期...
字串最小週期
如果乙個字串可以由某個長度為k的字串重複多次得到,我們說該串以k為週期。例如,abcabcabcabc以3為週期 注意,它也可以6和12為週期,結果取最小週期3 字串的長度小於等於100,輸出它的最小週期。思路 找出最小週期,首先分析週期的特殊性,即是字串長度的約數,考慮遍歷字元長度的約數,比較字串...