最長重複子串(字尾陣列)

2021-09-30 04:09:34 字數 496 閱讀 7518

時間限制:

1000

ms  |  記憶體限制:

3000

kb

描述

對於乙個字串s1,其中s2是他的乙個子串(長度嚴格小於s1長度),如果s2在s1**現次數超過1次,那麼s2就是乙個重複子串,現在的要求是給定s1,請求出他的最長重複子串;

如果有多個長度一樣的最長子串,請輸入字典序最小那個串;

比如bbbaaaccc

那麼最長子串就是aa

輸入

第一行包含乙個整數t,表示有t組資料

對於每組資料報含一行,該行有乙個字串,長度小於10,000

輸出 對於每組資料請輸出他的最長重複子串,保證每組資料都有;

樣例輸入

2

abacabac

abacabbac

樣例輸出

abac

bac

最長重複子串 可重複 字尾陣列

時間限制 1000 ms 記憶體限制 3000 kb 描述 對於乙個字串s1,其中s2是他的乙個子串 長度嚴格小於s1長度 如果s2在s1中出現次數超過1次,那麼s2就是乙個重複子串,現在的要求是給定s1,請求出他的最長重複子串 如果有多個長度一樣的最長子串,請輸入字典序最小那個串 比如bbbaaa...

字尾陣列求最長重複子串

於 問題描述 給定乙個字串,求出其最長重複子串 例如 abcdabcd 最長重複子串是 abcd,最長重複子串可以重疊 例如 abcdabcda,這時最長重複子串是 abcda,中間的 a 是被重疊的。直觀的解法是,首先檢測長度為 n 1 的字串情況,如果不存在重複則檢測 n 2,一直遞減下去,直到...

字尾陣列(不可重疊最長重複子串)

poj 1743 二分答案,把題目變成判定性問題 判斷是否 存在兩個長度為k的子串是相同的,且不重疊。解決這個問題的關鍵還是利用 height陣列。把排序後的字尾分成若干組,其中每組的字尾之間的height值都 不小於k。有希望成為最長公共字首不小於k的兩個字尾一定在同一組。然 後對於每組字尾,只須...