首页 > 试题广场 >

最长公共子序列(二)

[编程题]最长公共子序列(二)
  • 热度指数:126568 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定两个字符串str1和str2,输出两个字符串的最长公共子序列。如果最长公共子序列为空,则返回"-1"。目前给出的数据,仅仅会存在一个最长的公共子序列

数据范围:
要求:空间复杂度 ,时间复杂度
示例1

输入

"1A2C3D4B56","B1D23A456A"

输出

"123456"
示例2

输入

"abc","def"

输出

"-1"
示例3

输入

"abc","abc"

输出

"abc"
示例4

输入

"ab",""

输出

"-1"
头像 牛客题解官
发表于 2022-04-22 12:39:30
精华题解 题目主要信息: 找到两个字符串的最长公共子序列,子序列不要求位置在原串中连续 仅存在一个最长公共子序列,不需要去重 最长公共子序列为空需要返回"-1",而不是空序列,最后要变换 举一反三: 学习完本题的思路你可以解决如下题目: BM66.最长公共子串 BM71.最长上升子序列(一) BM73 最 展开全文
头像 子夜降晴空
发表于 2021-03-28 16:58:45
class Solution { public: string LCS(string s1, string s2) { if(s1.empty() || s2.empty()) return "-1"; int dp[s1.size()+1][s2.size( 展开全文
头像 LaN666
发表于 2020-12-01 17:35:37
详细博客讲解 https://blog.csdn.net/hrn1216/article/details/51534607 import java.util.*; public class Solution { /** * longest common subsequence 展开全文
头像 冰与火之歌201908192037329
发表于 2020-09-03 16:18:13
import java.util.*; public class Solution { /** * longest common subsequence * @param s1 string字符串 the string * @param s2 string字 展开全文
头像 杭研反卷联盟小队长
发表于 2021-09-20 20:17:38
import java.util.*; public class Solution { /** * longest common subsequence * @param s1 string字符串 the string * @param s2 string字 展开全文
头像 小丁做事小叮当
发表于 2021-01-19 22:35:20
参考的链接:https://blog.csdn.net/hrn1216/article/details/51534607 // LCS(longest common sequence(还有另一种LCS,longest common string,中文名为最长公共子串, // 他和seque 展开全文
头像 momomomomomomo
发表于 2021-10-05 22:15:06
# # longest common subsequence # @param s1 string字符串 the string # @param s2 string字符串 the string # @return string字符串 # class Solution: def LCS(sel 展开全文
头像 CroMarmot
发表于 2022-02-02 02:18:04
最长公共子序列(二)(动态规划) 题意 给定两个字符串,求它们的最长公共序列 思路分析 公共序列 要找s1和s2的公共序列,如果有字符相等s1[i] == s2[j],那么s1[0..i-1]和s2[0..j-1]的公共序列加上相等的字符,就能得到一个更长的公共序列, 所以有, 令s[i][j]表示 展开全文
头像 江南好___
发表于 2021-10-14 23:55:03
描述 题目描述 给定两个字符串str1和str2,输出两个字符串的最长公共子序列。如果最长公共子序列为空,则返回"-1"。目前给出的数据,仅仅会存在一个最长的公共子序列 要求:空间复杂度 O(n^2) ,时间复杂度 O(n^2) 示例 输入: "1A2C3D4B56","B1D23A456A" 返回 展开全文
头像 changed.
发表于 2021-07-20 21:41:57
题意整理 本题题意既找到给定的两个字符串中的最长公共子序列,子序列为一个序列去除部分(也可以不去除)元素后,其他元素相对位置保持不变得到的序列。 方法一:动态规划 核心思想: 分析题意可以知道可以通过二维动态规划解决这道题假设两个字符串的长度分别为 。建立一个大小为行,列的dp数组,其中表示 长度 展开全文
头像 //returnasea
发表于 2021-10-06 01:43:33
动态规划可以求出最长公共子序列的长度,dp[i][j]表示以i-1结尾的s1和以j-1结尾的s2之间的最长公共子序列长度,由dp[i-1][j]、dp[i][j-1]以及dp[i-1][j-1]这三个上一状态推导出当前状态。 难点在于如何根据dp表的信息得到具体的子序列。从dp的右下角到左上角方向遍 展开全文