求最長公共子串的兩種方法

2021-09-21 13:35:53 字數 764 閱讀 7809

求最長公共子串:

輸入描述:輸入兩個字串

輸出描述:輸出乙個整數

輸入:asdfas werasdfaswer

輸出:6

一、動態規劃

用一維陣列代替二維陣列,相應的,一維陣列的index序列號對應二維的(i,j)有:

index = i* 列數+ j

function

getlen

(str1,str2)

else

if(str1[i]

=== str2[j])}

}return math.

max(

...resarr)

;}

二、字串擷取

求最長公共子串

參考 最長公共子串 longest common substirng 和最長公共子串行 longest common subsequence,lcs 的區別為 子串是串的乙個連續的部分,子串行則是從不改變序列的順序,而從序列中去掉任意的元素而獲得新的序列 也就是說,子串中字元的位置必須是連續的,子串...

求最長公共子串

題目描述 給定乙個query和乙個text,均由小寫字母組成。要求在text中找出以同樣的順序連續出現在query中的最長連續字母序列的長度。例如,query為 acbac text為 acaccbabb 那麼text中的 cba 為最長的連續出現在query中的字母序列,因此,返回結果應該為其長度...

求最長公共子串行和最長公共子串

輸入描述 輸入為兩行字串 可能包含空格 長度均小於等於50。輸出描述 輸出為乙個整數,表示最長公共連續子串的長度。輸入例子 abcde abgde 輸出例子 2題解 例如 str1 abcde str2 abgde matrix 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0...