給定兩個字串 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 的子串行。兩個...