牛客题霸 [最长公共子序列] C++题解/答案

题目描述

给定两个字符串str1和str2,输出连个字符串的最长公共子序列。如过最长公共子序列为空,则输出-1。

题解:

dp经典问题

代码:

class Solution {public:/*** longest common subsequence* @param s1 string字符串 the string* @param s2 string字符串 the string* @return string字符串*/string LCS(string s1, string s2) {// write code hereint len1 = s1.size();int len2 = s2.size();string a=solve(len1,len2,s1,s2);return a;}string solve(int len1,int len2,string s1,string s2){vector<vector<string> > dp(len1 + 1, vector<string>(len2 + 1, ""));string temp,temp1,temp2;for(int i = 1; i <= len1; ++i){for(int j = 1; j <= len2; ++j){if(s1[i - 1] == s2[j - 1]){temp = dp[i - 1][j - 1];temp += s1[i - 1];dp[i][j] = temp;}else{temp1 = dp[i - 1][j];temp2 = dp[i][j - 1];if(temp1.size() > temp2.size()){dp[i][j] = temp1;}else{dp[i][j] = temp2;}}}}if (dp[len1][len2] == "")return "-1";elsereturn dp[len1][len2];}
};

牛客题霸 [最长公共子序列] C++题解/答案相关推荐

  1. 牛客题霸 [ 最长递增子序列] C++题解/答案

    牛客题霸 [ 最长递增子序列] C++题解/答案 题目描述 给定数组arr,设长度为n,输出arr的最长递增子序列.(如果有多个答案,请输出其中字典序最小的) 题意: 直接暴力会超时 应该用二分+贪心 ...

  2. 牛客题霸 [最长公共子串]C++题解/答案

    牛客题霸 [最长公共子串]C++题解/答案 题目描述 给定两个字符串str1和str2,输出两个字符串的最长公共子串,如果最长公共子串为空,输出-1 题解: lcs模板 代码: class Solut ...

  3. 牛客题霸 [ 最长公共前缀] C++题解/答案

    牛客题霸 [ 最长公共前缀] C++题解/答案 题目描述 编写一个函数来查找字符串数组中的最长公共前缀. 题解: 原本想暴力做,直接多层循环套,发现并不用 注意本题,给出了多组字符串,求它们的最长公共 ...

  4. 牛客题霸 [最长重复子串] C++题解/答案

    牛客题霸 [最长重复子串] C++题解/答案 题目描述 一个重复字符串是由两个相同的字符串首尾拼接而成,例如abcabc便是长度为6的一个重复字符串,而abcba则不存在重复字符串. 给定一个字符串, ...

  5. 牛客题霸 [容器盛水问题] C++题解/答案

    牛客题霸 [容器盛水问题] C++题解/答案 题目描述 给定一个整形数组arr,已知其中所有的值都是非负的,将这个数组看作一个容器,请返回容器能装多少水. 具体请参考样例解释 题解: 我们找出容器的左 ...

  6. 牛客题霸 [子数组最大乘积] C++题解/答案

    牛客题霸 [子数组最大乘积] C++题解/答案 题目描述 给定一个double类型的数组arr,其中的元素可正可负可0,返回子数组累乘的最大乘积. 题解: 同时记录最大值和最小值,为什么?因为给的元素 ...

  7. 牛客题霸 [滑动窗口的最大值] C++题解/答案

    牛客题霸 [滑动窗口的最大值] C++题解/答案 题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值.例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一 ...

  8. 牛客题霸 [ 集合的所有子集] C++题解/答案

    牛客题霸 [ 集合的所有子集] C++题解/答案 题目描述 现在有一个没有重复元素的整数集合S,求S的所有子集 注意: 你给出的子集中的元素必须按升序排列 给出的解集中不能出现重复的元素 题解: 先s ...

  9. 牛客题霸 [ 最小的K个数] C++题解/答案

    牛客题霸 [ 最小的K个数] C++题解/答案 题目描述 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4. 题解: 如果有n&l ...

最新文章

  1. AR模型、MA(Moving Average)模型、ARMA模型、时间序列的定阶、ARIMA、SARIMAX
  2. EPOLL 事件之 EPOLLRDHUP
  3. 【转】gl_NormalMatrix
  4. java中的this什么作用
  5. 甘特图看起来很生硬?教你使用智能颜色装饰你的甘特图!(二)
  6. 将编号为0和1的两个栈存放于一个数组空间V[m]中。
  7. Lua协程Coroutine是什么
  8. Python面试题大全(五):测试、大数据、数据结构、架构
  9. [ETL] Flume 理论与demo(Taildir Source Hdfs Sink)
  10. 使用CrossOver安装第三方软件
  11. 【论文笔记】Evolving Deep Neural Networks.
  12. Unity LitJson的读写使用
  13. HTTP请求中文乱码解决办法
  14. 抑郁症,恐惧,压力和肠道微生物群脱不开的关系
  15. 1467 acm 矩阵不同行列的和
  16. Python Scrapy 爬取 前程无忧招聘网
  17. 入手评测AMD锐龙r7 6800u和酷睿i7 1260p选哪个 r76800u和i71260p对比
  18. php身份证识别ORC
  19. 对Max Pooling的理解
  20. 关于Git使用详细教程

热门文章

  1. 人工智能路上,怎么能少了它!
  2. 国庆中秋活动——超强AR/3D地球仪!带你领略世界风光!我们未必能环游世界,但都该有个地球仪
  3. 宝塔linux面板假设nextcloud,宝塔面板部署NextCloud(14.0.3)逐一解决后台安全及设置警告...
  4. mysql二阶段提交有什么问题_MySQL的事务两阶段提交的技术有什么意义?
  5. 小米3g刷高格固件_小米路由器3G刷了老毛子之后恢复官方固件
  6. 操作系统概念 ppt_智能家居操作系统三国拉锯,要出结果了吗?
  7. 超详细图解!【MySQL进阶篇】MySQL索引原理
  8. centos 6 x64 mysql_CentOS 6.x版本升级Mysql
  9. 利用计算机制作多媒体最后一步,福建省高中会考 多媒体技术应用 选择题专项练习十一(201206)(有答案)...
  10. c语言铁路托运行李费用图,3.为铁路部门编写计算运费的程序。假设铁路托运行李,规定每张客票托运费计算方法是:行李重量不超过50kg...