獲取兩個字串中最大相同的子串(java)

2021-08-30 21:54:23 字數 658 閱讀 9156

找出兩個字串中的最大子串:例s1="asdafghjka", s2="aaasdfg"    他們的最大子串為"asd"  

這個題類似與字串匹配的問題,首先因想到用長的字串判斷是否包含短的字串

高效的做法是:依次把短的字串的長度遞減,找出短的字串的子字串,這樣就大大提高了效率

減少了比較的次數。

例:1.短的長度為 0~s2.lengh() 與長的判斷一次(判斷是否包含);

2..短的長度為 0~s2.lengh()-1 與長的判斷兩次(有兩個長度為s2.lengh()-1在短的字串中)

3..短的長度為 0~s2.lengh()-2 與長的判斷三次;

4..短的長度為 0~s2.lengh()-3 與長的判斷四次;

所以應寫出把短的字串遍歷的**;通過以上規律即可寫出:

for(int x=0; x對於該題來說只要在找出短的子串中判斷是否包含在長的字串中即可。

注意:是遍歷出短的字串,然後在用的長的判斷是否包含。

完整**:

public class stringtest

public static string text(string s1,string s2)

}return null;

}}

獲取兩個字串中最大相同子串

獲取兩個字串中最大相同子串。比如 str1 abcwerthelloyuiodef str2 cvhellobnm return hello 如果只存在乙個最大長度的相同子串 public string getmaxsamesubstring string str1,string str2 retu...

獲取兩個字串中最大相同子串

獲取兩個字串中最大相同子串。比如 str1 abcwerthelloyuiodefabcdef str2 cvhellobnm public string getmaxsamestring string str1,string str2 return null 如果存在多個長度相同的最大相同子串 此...

1 獲取兩個字串中最大相同子串

比如有兩個字串 str1 eysdfghjkl str2 cxbghjp 需要找出這裡兩個字串中最大的字元子串,這裡就是 ghj 查詢的方法就是把兩個字串中較短的那個依次減小,然後按照該長度在短的字串中獲取所有子串依次判斷該子串是否存在於長的字串中.上面的方法聽著是不是很繞.我們詳細說明一下吧.上面...