時間限制:
1000
ms | 記憶體限制:
3000
kb
描述
對於乙個字串s1,其中s2是他的乙個子串(長度嚴格小於s1長度),如果s2在s1**現次數超過1次,那麼s2就是乙個重複子串,現在的要求是給定s1,請求出他的最長重複子串;
如果有多個長度一樣的最長子串,請輸入字典序最小那個串;
比如bbbaaaccc
那麼最長子串就是aa
輸入
第一行包含乙個整數t,表示有t組資料
對於每組資料報含一行,該行有乙個字串,長度小於10,000
輸出 對於每組資料請輸出他的最長重複子串,保證每組資料都有;
樣例輸入
2abacabac
abacabbac
樣例輸出
abacbac
最長重複子串 可重複 字尾陣列
時間限制 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的兩個字尾一定在同一組。然 後對於每組字尾,只須...