1143 最長公共子串行

2021-10-05 03:43:12 字數 1310 閱讀 3416

給定兩個字串 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。

1 <= text1.length <= 1000

1 <= text2.length <= 1000

輸入的字串只含有小寫英文本元。

class

solution

char

char1 = text1.

tochararray()

;char

char2 = text2.

tochararray()

;int

ints =

newint

[char1.length]

[char2.length];if

(char1[0]

== char2[0]

)else ints[0]

[0]=

0;for(

int i =

1; i < char1.length; i++

)else ints[i][0

]= ints[i -1]

[0];

}for

(int i =

1; i < char2.length; i++

)else ints[0]

[i]= ints[0]

[i -1]

;}for(

int i =

1; i < char1.length; i++)}

}return ints[char1.length -1]

[char2.length -1]

;}}

1143 最長公共子串行

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

1143 最長公共子串行

一.題目描述 二.動態規劃解法 例如 s1 abcde s2 ace 求兩個字串的公共子串行,答案是 ace 1.s t 2.子問題劃分 1 如果s的最後一位等於t的最後一位,則最大子串行就是和的最大子串行 1 2 如果s的最後一位不等於t的最後一位,那麼最大子串行就是 和 最大子串行 和 最大子串...

1143 最長公共子串行

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