Menu
CoddyTech

Longest Common Subsequence

中等动态规划python iconjava iconcpp iconc iconjs icon+10

给你两个字符串,text1 和 text2。字符串的子序列保留其中一些字母的原有顺序,并删除其余字母;保留的字母不必相邻。返回同时是这两个字符串子序列的最长字符串的长度。如果这两个字符串没有共同字母,则返回 0。

函数

longestCommonSubsequence(text1: string, text2: string) → integer
text1string
第一个字符串
text2string
第二个字符串
返回值integer
最长公共子序列的长度

约束条件

  • 1 ≤ text1.length ≤ 1000
  • 1 ≤ text2.length ≤ 1000
  • 这两个字符串只包含小写英文字母。

示例

输入
text1 = "stone"text2 = "longest"
输出
3
解释
o、n、e 在这两个单词中都按这个顺序出现,所以 one 是共同部分,长度为 3。字母 s 和 t 在 longest 中排在最后,在 stone 中排在最前,所以用它们最多只能得到 st。
challenge icon

进阶

你能否返回一个最长公共子序列本身,以及它的长度?

重置代码
def longestCommonSubsequence(text1, text2):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

text1 = "stone"
text2 = "longest"

预期输出

3