求兩個字串的最長公共子串 Java實現

2021-08-30 08:29:08 字數 619 閱讀 3625

要求:根據提供的兩個字串,求出這兩個字串的最大公共子串。

思路:依次對較短的字串進行取子串操作(n,n-1,n-2......1),根據子串的長度不同,其對應的子串個數也不同,判斷每個子串是否包含於大串中,如果包含,則該子串就是兩個字串的最大公共子串。

package qiuzhitest;

//求最長子串

public class bigsubstring

//求最長子串

public static string getmaxsubstring(string str1,string str2)

if(str1.length()>=str2.length())else

//對長度較短的字串依次取其子串(n,n-1,n-2......1)

for(int i=0;i=str2.length())else

//定義乙個變數,用來儲存判斷過程中出現的字串

string s="";

//迴圈判斷兩個字串

求兩個字串的最長公共子串

問題 有兩個字串str和str2,求出兩個字串中最長公共子串長度。比如 str acbcbcef,str2 abcbced,則str和str2的最長公共子串為bcbce,最長公共子串長度為5。演算法思路 1 把兩個字串分別以行和列組成乙個二維矩陣。2 比較二維矩陣中每個點對應行列字元中否相等,相等的...

求兩個字串的最長公共子串

def longestcommonsequence str one,str two,case sensitive true str one 和 str two 的最長公共子串行 param str one 字串1 param str two 字串2 正確結果 param case sensitive...

求兩個字串的最長公共子串

採用乙個二維矩陣來記錄中間結果,矩陣的橫座標為字串1的各個字元,矩陣的縱座標為字串2的各個字元。舉例說明 假設兩個字串分別為 bab 和 caba 當然我們現在一眼就可以看出來最長公共子串是 ba 或 ab b a b c 0 0 0 a 0 1 0 b 1 0 1 a 0 1 0 可以看出,矩陣的...