当前为游客只读模式。登录后可提交代码判题并保存草稿与进度。
最长公共子序列
中等longestCommonSubsequence()时间限制 2000 ms内存限制 128 MB复杂度要求 时间 O(m*n),空间 O(m*n)(可滚动数组优化到 O(min(m,n)))
最长公共子序列
给定两个字符串 text1 和 text2,返回它们的最长公共子序列的长度。如果不存在公共子序列,返回 0。
一个字符串的子序列是指这样一个新字符串:由原字符串在不改变字符相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。
例如,"ace" 是 "abcde" 的子序列,但 "aec" 不是 "abcde" 的子序列。两个字符串的公共子序列是由这两个字符串共同拥有的子序列。
约定
1 <= text1.length, text2.length <= 1000text1和text2都只由小写英文字符组成。
输入
text1:第一个字符串text2:第二个字符串
输出
最长公共子序列的长度。
示例一
输入:
text1 = "abcde", text2 = "ace"
输出:
3
解释:最长公共子序列是 "ace",长度为 3。
示例二
输入:
text1 = "abc", text2 = "abc"
输出:
3
解释:最长公共子序列是 "abc"。
示例三
输入:
text1 = "abc", text2 = "def"
输出:
0
解释:两个字符串没有公共子序列,返回 0。
复杂度要求
- 时间复杂度:
O(m * n),m、n分别为两个字符串长度 - 空间复杂度:
O(m * n)
Loading...
输入
["abcde","ace"]
预期输出
3