【算法导论实验4】动态规划-最长公共子序列LCS
来源:互联网 发布:ieye下载软件 编辑:程序博客网 时间:2024/05/18 03:12
真的很重要!!不管是面试还是实际应用还是acm比赛!
原理在dp中属于好理解的..
#include <iostream>#include <cstring>#include <string>using namespace std;int c[100][100];int b[100][100];int countlength=0;void LCS_Length (string x, string y){int m =x.size();int n =y.size();for (int i = 0; i <= m; i++)c[i][0] = 0;for (int i = 0; i <= n; i++)c[0][i] = 0;for (int i = 0; i < m; i++){for (int j = 0; j < n; j++){if (x[i] == y[j]){c[i + 1][j + 1] = c[i][j] + 1;b[i + 1][j + 1] = 0;}else if (c[i][j + 1] >= c[i + 1][j]){c[i + 1][j + 1] = c[i][j + 1];b[i + 1][j + 1] = 1;}else{c[i + 1][j + 1] = c[i + 1][j];b[i + 1][j + 1] = 2;}}}}void Print_LCS (string x, int i, int j){if ((i == 0) || (j == 0))return ;if (b[i][j] == 0){Print_LCS (x, i - 1, j - 1);cout << x[i - 1] << ' ';countlength++;}else if (b[i][j] == 1)Print_LCS (x, i -1, j);elsePrint_LCS (x, i, j - 1);}int main(){string x,y;while (cin >> x >> y){LCS_Length (x, y);Print_LCS (x, x.size(), y.size());cout << endl;cout<<"长度是:"<<countlength<<endl;}return 0;}
0 0
- 【算法导论实验4】动态规划-最长公共子序列LCS
- 算法导论-----最长公共子序列LCS(动态规划)
- 最长公共子序列(LCS) (动态规划算法实现)算法导论p211
- 算法导论学习笔记(十二):动态规划(二):最长公共子序列(LCS)
- Java实现算法导论中最长公共子序列(LCS)动态规划法
- 算法导论——动态规划之最长公共子序列(LCS)和最长回文子序列(LPS)
- 算法导论(LCS最长公共子序列)
- 动态规划实现最长公共子序列(LCS)算法
- 动态规划算法解最长公共子序列LCS问题
- 动态规划算法解最长公共子序列LCS问题
- 动态规划算法解最长公共子序列LCS问题
- 动态规划算法解最长公共子序列LCS问题
- 动态规划算法解最长公共子序列LCS问题
- 动态规划算法解最长公共子序列LCS问题
- 动态规划算法解最长公共子序列LCS问题
- 动态规划算法解最长公共子序列LCS问题
- 动态规划算法解最长公共子序列LCS问题
- 算法/动态规划/LongestCommonSubsquence(LCS)最长公共子序列问题
- Delegate无法正确工作(有关Ftp控制)
- Linux下如何用rpm卸载软件 rpm依赖包强制卸载
- JDBC性能总结
- 二叉树中和为某一值的路径(剑指offer25)
- OC基础—内存管理之@property及其参数(补充新知识:循环引用和@class)
- 【算法导论实验4】动态规划-最长公共子序列LCS
- 微信公众帐号开发教程第13篇-图文消息全攻略
- Wincc操作数据库SQLSERVER
- 自己写了一个链表功能还不完善但是简单的增删改查功能都已经实现了
- 《看板方法-科技企业渐进变革成功之道》书摘笔记【第5章】
- Html+Flex
- android static实现Service与Activity中Handler通信
- DLL文件介绍
- java 显示文件夹下所有文件