字串週期

2021-10-21 14:55:47 字數 681 閱讀 1928

如果乙個字串可以由某個長度為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,輸出它的最小週期。思路 找出最小週期,首先分析週期的特殊性,即是字串長度的約數,考慮遍歷字元長度的約數,比較字串...