最长公共子序列(动态规划)
来源:互联网 发布:《java编程语言》 编辑:程序博客网 时间:2024/05/16 06:33
串1:ABCBDAB len1=7
串2:BDCABA len2=6
计算这两个串的最长公共子序列。
解这个题,最重要的是,对表格的理解。
建立一张7*8的表格,多出来的一行一列,用做当该串是空串的时候,应该怎么做。
很明显需要初始化为0(空串和任何串都不能有公共子序列)。
int main(void){ string str1 = "ABCBDAB"; string str2 = "BDCABA"; int len1 = str1.length(); int len2 = str2.length(); vector<vector<int>> vtt; vector<int> vt; for (int i = 0; i < len1 + 1; i++)//8 { vt.push_back(0); } for (int i = 0; i < len2 + 1; i++)//7 { vtt.push_back(vt); } for (int i = 1; i < len2 + 1; i++) { for (int j = 1; j < len1 + 1; j++) { if (str1[j-1] == str2[i-1]) vtt[i][j] = vtt[i-1][j-1] + 1; else { vtt[i][j] = vtt[i - 1][j] > vtt[i][j - 1] ? vtt[i - 1][j] : vtt[i][j - 1]; } } } cout << vtt[len2][len1]; return 0;}
阅读全文
0 0
- 最长公共子序列(动态规划)
- 最长公共子序列(动态规划)
- 最长公共子序列(动态规划)
- 最长公共子序列(动态规划)
- 最长公共子序列(动态规划)
- 最长公共子序列(动态规划)
- 最长公共子序列(动态规划)
- 最长公共子序列(动态规划)
- 最长公共子序列(动态规划)
- 最长公共子序列&&最长公共子串---[动态规划]
- 动态规划-最长公共子序列、最长公共子串
- 动态规划之最长公共子序列
- 动态规划 ------- 最长公共子序列
- 动态规划实现最长公共子序列
- 【动态规划】最长公共子序列LCS
- 动态规划--最长公共子序列
- 动态规划:最长公共子序列
- 动态规划解决最长公共子序列
- iOS远程真机之iTunes与iPhone的通信协议usbmuxd解析
- SVN概述
- webpack--概念6--配置+模块+依赖图
- IE浏览器 兼容性(IE9-11 差异说明)
- Python virtualenv安装库报错SSL: CERTIFICATE_VERIFY_FAILED
- 最长公共子序列(动态规划)
- 笨方法学python 习题1、2、3
- 复习总结07:Redis
- yii DAO增删改查
- uboot之makefile分析
- 第11讲项目3-如何买玫瑰
- 浅谈tcp_nodelay的作用
- Android 注解原理
- 大型网站架构之分布式消息队列