求字串A與字串B的最長公共字串(JAVA)

2021-09-07 13:44:01 字數 586 閱讀 5416

思路:引入乙個矩陣的思想,把字串a(長度為m)當成矩陣的行,把字串b(長度為n)當矩陣的列。這樣就構成乙個m*n的矩陣。若該矩陣的節點相應的字元同樣,即m[i]=n[j]時。該節點值為1;當前字元同樣節點的值 = 左上角(d[i-1, j-1])的值 +1,這樣當前節點的值就是最大公用子串的長。僅僅需以行號和最大值為條件就可以擷取最大子串。

public string getlongest(string s1,string s2)

if(s1.equals(s2))

int length = 0;

int end = 0;

int a = new

int[s1.length()][s2.length()];

char char1=s1.tochararray();

char char2=s2.tochararray();

for (int i = 0; i < s1.length(); i++)

} }

return s1.substring(end - length + 1, end+1);

}

最長公共字串

include include include include include customer.h using namespace std 最長公共字串 動態規劃 假設需要求得字串為str1,str2。函式f m,n 分別為 str1 m str2 n 結尾的公共字串長度。有以下遞推公式 遞推邊界...

最長公共字串

牛客網的題目鏈結 對於兩個字串,請設計乙個時間複雜度為o m n 的演算法 這裡的m和n為兩串的長度 求出兩串的最長公共子串的長度。這裡的最長公共子串的定義為兩個序列u1,u2,un和v1,v2,vn,其中ui 1 ui 1,vi 1 vi 1,同時ui vi。給定兩個字串a和b,同時給定兩串的長度...

最長公共子串,字串

目前,在各大 或者是,有著不少的關於這個問題的講解,但是目前覺得都不是很清晰明白!現在普遍的解法都是用動態規劃的方式來做這道筆試題。或者是經典的面試題。這裡我做乙個自認為比較清楚的講解。說到動態規劃很多人都不會感到很陌生。但是有多少知道動態規劃什麼?精髓在 這裡僅僅提供一些個人見解,首先,動態規劃不...