牛客题霸 [最长公共子序列] C++题解/答案
牛客题霸 [最长公共子序列] 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++题解/答案相关推荐
- 牛客题霸 [ 最长递增子序列] C++题解/答案
牛客题霸 [ 最长递增子序列] C++题解/答案 题目描述 给定数组arr,设长度为n,输出arr的最长递增子序列.(如果有多个答案,请输出其中字典序最小的) 题意: 直接暴力会超时 应该用二分+贪心 ...
- 牛客题霸 [最长公共子串]C++题解/答案
牛客题霸 [最长公共子串]C++题解/答案 题目描述 给定两个字符串str1和str2,输出两个字符串的最长公共子串,如果最长公共子串为空,输出-1 题解: lcs模板 代码: class Solut ...
- 牛客题霸 [ 最长公共前缀] C++题解/答案
牛客题霸 [ 最长公共前缀] C++题解/答案 题目描述 编写一个函数来查找字符串数组中的最长公共前缀. 题解: 原本想暴力做,直接多层循环套,发现并不用 注意本题,给出了多组字符串,求它们的最长公共 ...
- 牛客题霸 [最长重复子串] C++题解/答案
牛客题霸 [最长重复子串] C++题解/答案 题目描述 一个重复字符串是由两个相同的字符串首尾拼接而成,例如abcabc便是长度为6的一个重复字符串,而abcba则不存在重复字符串. 给定一个字符串, ...
- 牛客题霸 [容器盛水问题] C++题解/答案
牛客题霸 [容器盛水问题] C++题解/答案 题目描述 给定一个整形数组arr,已知其中所有的值都是非负的,将这个数组看作一个容器,请返回容器能装多少水. 具体请参考样例解释 题解: 我们找出容器的左 ...
- 牛客题霸 [子数组最大乘积] C++题解/答案
牛客题霸 [子数组最大乘积] C++题解/答案 题目描述 给定一个double类型的数组arr,其中的元素可正可负可0,返回子数组累乘的最大乘积. 题解: 同时记录最大值和最小值,为什么?因为给的元素 ...
- 牛客题霸 [滑动窗口的最大值] C++题解/答案
牛客题霸 [滑动窗口的最大值] C++题解/答案 题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值.例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一 ...
- 牛客题霸 [ 集合的所有子集] C++题解/答案
牛客题霸 [ 集合的所有子集] C++题解/答案 题目描述 现在有一个没有重复元素的整数集合S,求S的所有子集 注意: 你给出的子集中的元素必须按升序排列 给出的解集中不能出现重复的元素 题解: 先s ...
- 牛客题霸 [ 最小的K个数] C++题解/答案
牛客题霸 [ 最小的K个数] C++题解/答案 题目描述 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4. 题解: 如果有n&l ...
最新文章
- AR模型、MA(Moving Average)模型、ARMA模型、时间序列的定阶、ARIMA、SARIMAX
- EPOLL 事件之 EPOLLRDHUP
- 【转】gl_NormalMatrix
- java中的this什么作用
- 甘特图看起来很生硬?教你使用智能颜色装饰你的甘特图!(二)
- 将编号为0和1的两个栈存放于一个数组空间V[m]中。
- Lua协程Coroutine是什么
- Python面试题大全(五):测试、大数据、数据结构、架构
- [ETL] Flume 理论与demo(Taildir Source Hdfs Sink)
- 使用CrossOver安装第三方软件
- 【论文笔记】Evolving Deep Neural Networks.
- Unity LitJson的读写使用
- HTTP请求中文乱码解决办法
- 抑郁症,恐惧,压力和肠道微生物群脱不开的关系
- 1467 acm 矩阵不同行列的和
- Python Scrapy 爬取 前程无忧招聘网
- 入手评测AMD锐龙r7 6800u和酷睿i7 1260p选哪个 r76800u和i71260p对比
- php身份证识别ORC
- 对Max Pooling的理解
- 关于Git使用详细教程
热门文章
- 人工智能路上,怎么能少了它!
- 国庆中秋活动——超强AR/3D地球仪!带你领略世界风光!我们未必能环游世界,但都该有个地球仪
- 宝塔linux面板假设nextcloud,宝塔面板部署NextCloud(14.0.3)逐一解决后台安全及设置警告...
- mysql二阶段提交有什么问题_MySQL的事务两阶段提交的技术有什么意义?
- 小米3g刷高格固件_小米路由器3G刷了老毛子之后恢复官方固件
- 操作系统概念 ppt_智能家居操作系统三国拉锯,要出结果了吗?
- 超详细图解!【MySQL进阶篇】MySQL索引原理
- centos 6 x64 mysql_CentOS 6.x版本升级Mysql
- 利用计算机制作多媒体最后一步,福建省高中会考 多媒体技术应用 选择题专项练习十一(201206)(有答案)...
- c语言铁路托运行李费用图,3.为铁路部门编写计算运费的程序。假设铁路托运行李,规定每张客票托运费计算方法是:行李重量不超过50kg...