從兩個字串(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。然後找出矩陣中連續是...