從兩個字串中找出最大公共子字串

2021-10-02 17:24:32 字數 775 閱讀 5623

從兩個字串(str_1,str_2)中找出最大公共子字串(comstring)的方法為:

選取長度較短的字串(假設str_1較短)做擷取;

從字串中擷取長度為1的子字串;

每個子字串都在str_2中做查詢,查詢到則將該字串賦予comstring;

從字串中擷取長度為2的子字串,重複3;

從字串中擷取長度為n的子字串,重複3;

結束。 擷取字串例子:

例項:

/**

* create by lijiaman on 2016-09-24

* 題目:求兩個字串的最大公共子字串

* 思路:將短的字串從短到長做字串擷取,擷取結果與另乙個字串做查詢,如果查詢到,預設為公共字串。

*/package

com.company;

public

class

main

public

static

void

commonstring(string str_1,string str_2)

}system.out.println(comstring);}}

結果為:

找出兩個字串的最大公共子串

找出兩個字串的最大公共子串。如 abcdefg和abdefg的最大公共子串是defg 有人給出以下兩種思路 1.以兩個字串c1c2為行列構成矩陣a,相同a i j 為1 最大就是斜方向連續1最多的 另一建議 如果2個字串都很長 那個矩陣占用空間太大了啊,那個矩陣是一般來說是稀疏矩陣 考慮用稀疏矩陣的...

兩個字串的最大公共子串行和最大公共子串

1.最大公共子串行 例如 bdcaba和abcbdab的最大公共子串行是bcba。找兩個遞增下標序列和,使得str1 i1 str2 j1 str1 i2 str2 j2 str1 ik str2 jk 用動態規劃來求解 dp i j 來表示str1的前i個元素與str2的前j個元素能夠組成的最大子...

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

求兩個串中的第乙個最長子串。如 abractyeyt dgdsaeactyey 的最大子串為 actyet 有乙個演算法很巧妙 把字串1 長度m 橫排,串2 長度n 豎排,得到乙個m n的矩陣c,矩陣的每個元素的值如下,如果m i n j 則c j i 1,否則,c j i 0。然後找出矩陣中連續是...