首页 > 试题广场 >

最长公共子序列(二)

[编程题]最长公共子序列(二)
  • 热度指数:116708 时间限制: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数组,其中表示 长度 展开全文
头像 牛客342984503号
发表于 2021-10-19 21:37:33
/** * 这个没有看别人的解题,自己独立写出来的,因为之前在书里看过相关的例子,但是不太一样,书里的例子只求最长的长度,所以在数组里存数字就行,一开始没看仔细,发现不对,想了一下,就是试着直接存字符,初始化首行首列为“”,然后比较字符,如果相等,当前位置赋值为[i-1][j-1]+当前字符,否则 展开全文