LeetCode 1143 最長公共子串行

2021-09-29 21:44:26 字數 1715 閱讀 2259

給定兩個字串 text1 和 text2,返回這兩個字串的最長公共子串行。

乙個字串的 子串行 是指這樣乙個新的字串:它是由原字串在不改變字元的相對順序的情況下刪除某些字元(也可以不刪除任何字元)後組成的新字串。

例如,「ace」 是 「abcde」 的子串行,但 「aec」 不是 「abcde」 的子串行。兩個字串的「公共子串行」是這兩個字串所共同擁有的子串行。

若這兩個字串沒有公共子串行,則返回 0。

示例 1:

輸入:text1 = 「abcde」, text2 = 「ace」

輸出:3

解釋:最長公共子串行是 「ace」,它的長度為 3。

示例 2:

輸入:text1 = 「abc」, text2 = 「abc」

輸出:3

解釋:最長公共子串行是 「abc」,它的長度為 3。

示例 3:

輸入:text1 = 「abc」, text2 = 「def」

輸出:0

解釋:兩個字串沒有公共子串行,返回 0。

動態規劃解法:

例如:s1=「abcde」  s2= 「ace」,求兩個字串的公共子串行,答案是「ace」

1. s t

2. 子問題劃分

以上兩個自序列的最大值

3. 邊界

只剩下和,如果相等就返回1,不等就返回0

4. 使用乙個**來儲存dp的結果

如果 s[i] == t[j] 則result[i][j] = result[i-1][j-1] + 1

否則result[i][j] = max(result[i][j-1],result[i-1][j])

LeetCode1143 最長公共子串行

題目描述 給定兩個字串 text1 和 text2,返回這兩個字串的最長公共子串行。乙個字串的 子串行 是指這樣乙個新的字串 它是由原字串在不改變字元的相對順序的情況下刪除某些字元 也可以不刪除任何字元 後組成的新字串。例如,ace 是 abcde 的子串行,但 aec 不是 abcde 的子串行。...

最長公共子串行 LeetCode 1143

給定兩個字串 text1 和 text2,返回這兩個字串的最長公共子串行。若這兩個字串沒有公共子串行,則返回 0。乙個字串的子串行是指這樣乙個新的字串 它是由原字串在不改變字元的相對順序的情況下刪除某些字元 也可以不刪除任何字元 後組成的新字串。例如,ace 是 abcde 的子串行,但 aec 不...

Leetcode 1143 最長公共子串行

題目鏈結 dp思路引導 咋說呢,當你列了乙個二維dp時,往往都會考慮左上方的三個框框對這個框的遞推。同型別見 第190場周賽 leetcode 1458 兩個子串行的最大點積 做了幾道之後,你就會覺得它很經典。本題具體思路 定義 dp i j 表示text1 0 i 和text2 0 j 的最長公共...