博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 1092. Shortest Common Supersequence
阅读量:4330 次
发布时间:2019-06-06

本文共 1083 字,大约阅读时间需要 3 分钟。

本题的核心是找到LCS,然后通过dp数组,反向构建出 Common Supersequence。这和 print LCS 的思路极其相似。

class Solution {public:    string shortestCommonSupersequence(string str1, string str2) {        int m=str1.size(), n=str2.size();        vector
> dp(m+1, vector
(n+1, 0)); for (int i=1;i<=m;++i){ for (int j=1;j<=n;++j){ if (str1[i-1]==str2[j-1]) dp[i][j] = dp[i-1][j-1]+1; else dp[i][j] = max(dp[i-1][j], dp[i][j-1]); } } int i=m, j=n; string res=""; while (i>0 || j>0){ if (i==0){ res += str2[--j]; }else if (j==0){ res += str1[--i]; }else if (str1[i-1] == str2[j-1]){ res += str1[i-1]; --i; --j; }else if (dp[i-1][j] > dp[i][j-1]){ res += str1[--i]; }else{ res += str2[--j]; } } reverse(res.begin(),res.end()); return res; }};

时间复杂度 O(mn)

转载于:https://www.cnblogs.com/hankunyan/p/11187070.html

你可能感兴趣的文章
django登录验证码操作
查看>>
(简单)华为Nova青春 WAS-AL00的USB调试模式在哪里开启的流程
查看>>
图论知识,博客
查看>>
[原创]一篇无关技术的小日记(仅作暂存)
查看>>
20145303刘俊谦 Exp7 网络欺诈技术防范
查看>>
原生和jQuery的ajax用法
查看>>
iOS开发播放文本
查看>>
20145202马超《java》实验5
查看>>
JQuery 事件
查看>>
main(argc,argv[])
查看>>
在线教育工具—白板系统的迭代1——bug监控排查
查看>>
121. Best Time to Buy and Sell Stock
查看>>
hdu 1005 根据递推公式构造矩阵 ( 矩阵快速幂)
查看>>
安装php扩展
查看>>
百度移动搜索主要有如下几类结果构成
查看>>
Python爬虫面试题170道:2019版【1】
查看>>
JavaBean规范
查看>>
第四阶段 15_Linux tomcat安装与配置
查看>>
NAS 创建大文件
查看>>
学习笔记-模块之xml文件处理
查看>>