例如:
例如字串 s =「abcdeabc」
輸出:abc
為何選用字尾?
字尾字串的字首包含了字串s的部分子串,只要求出字串s的所有字尾就可間接的表示了s所有的子串
儲存s字串的所有字尾
對所有字尾進行排序(自然排序)
比較排序後的相鄰的字尾的最長公共子串(兩個字尾從第乙個字元開始的就相等得到公共子串),求出最長的公共子串**
public
class
main
collections.
sort
(list)
;int maxlen =0;
for(
int i =
0;ilength()
-1;i++
) system.out.
println
(result+
":"+maxlen);}
//得到兩個字串最長公共長度
public
static
intgetcomlen
(string str1,string str2)
} string temp = str1.
substring(0
,i);
if(temp.
length()
>result.
length()
) result = temp;
return i;
}}
尋找乙個字串中的最長重複子串
問題描述 給定乙個字串,尋找這個字串的最長重複子串,如abcdeabc,其最長的重複子串為abc。這個問題來自別人的部落格 問題1.產生陣列向左平移的過程。如 abc bc c abd bd d 最長為2.資料庫更快。問題2.找到所有的字串。然後排序。當然也是資料庫操作最好。問題3.如果確定16個字...
leetcode 求乙個字串的最長回文子串
最長回文子串問題 給定乙個字串,求它的最長回文子串長度。如果乙個字串正著讀和反著讀是一樣的,那它就是回文串。給定乙個字串,求它最長的回文子串長度,例如輸入字串 35534321 它的最長回文子串是 3553 所以返回 4。最容易想到的辦法是列舉出所有的子串,然後一一判斷是否為回文串,返回最長的回文子...
面試題35 尋找乙個字串中最長的重複子串
思路 1.用字串指標陣列儲存使用者輸入的字串的所有字尾字串 2.將字尾字串集合進行排序 3.比較相鄰字串的公共子串長度,找到長度最大值,儲存相應字串即為所求 如下 include stdafx.h include include include define maxchar 5000 最長處理500...