算法 动态规划 最长公共子序列问题
来源:互联网 发布:亿文网络 编辑:程序博客网 时间:2024/06/06 07:26
#include <iostream>using namespace std;void LCSlength(int m,int n,char *x,char *y,int **c,int **b){ int i,j; for(i=0; i<=m; i++) c[i][0]=0; for(i=0; i<=n; i++) c[0][i]=0; for(i=1; i<=m; i++) for(j=1; j<=n; j++) if(x[i]==y[j]) { c[i][j]=c[i-1][j-1]+1; b[i][j]=1; } else if(c[i-1][j]>=c[i][j-1]) { c[i][j]=c[i-1][j]; b[i][j]=3; } else { c[i][j]=c[i][j-1]; b[i][j]=2; }}void LCS(int i,int j,char *x,int **b){ if(i==0||j==0) return; if(b[i][j]==1) { LCS(i-1,j-1,x,b); cout<<x[i]; } else if(b[i][j]==2) LCS(i,j-1,x,b); else LCS(i-1,j,x,b);}int main(){ int m1;//=7; int n1;//=6; cout<<"请输入第一个序列的个数m的值:"; cout<<endl; cin>>m1; cout<<endl; cout<<"请输入第二个序列的个数n的值:"; cout<<endl; cin>>n1; //char X[] = {' ','A','B','C','B','D','A','B'}; //char Y[] = {' ','B','D','C','A','B','A'}; char *X=new char[m1+1]; char *Y=new char[n1+1]; for(int i=1; i<=m1; i++) { cout<<"请输入第一个序列的第"<<i<<"个"<<endl; cin>>X[i]; } for(int i=1; i<=n1; i++) { cout<<"请输入第二个序列的第"<<i<<"个"<<endl; cin>>Y[i]; } // X={'A','B','C','B','D','A','B'}; // Y={'B','D','C','A','B','A'}; int **c1=new int*[m1]; int **b1=new int*[m1]; //cout<<"1"<<endl; for(int i=0; i<=m1; i++) { c1[i]=new int[n1+1]; b1[i]=new int[n1+1]; } // cout<<"2"<<endl; // X=new char[m1]; //Y=new char[n1]; LCSlength(m1,n1,X,Y,c1,b1); LCS(m1,n1,X,b1); //cout << "Hello world!" << endl; for (int i=0; i<m1; i++) { delete[] c1[i]; delete[] b1[i]; } delete[] c1; delete[] b1; //delete[] X; //delete[] Y; return 0;}
0 0
- 动态规划算法解最长公共子序列LCS问题
- 动态规划算法解最长公共子序列LCS问题
- 算法知识之最长公共子序列问题(动态规划)
- 最长公共子序列问题(动态规划算法)
- 动态规划算法解最长公共子序列LCS问题
- 动态规划算法解最长公共子序列LCS问题
- 动态规划算法解最长公共子序列LCS问题
- java动态规划算法--最长公共子序列问题
- 动态规划算法解最长公共子序列LCS问题
- 动态规划算法解最长公共子序列LCS问题
- 动态规划算法之最长公共子序列问题
- 动态规划算法解最长公共子序列LCS问题
- 动态规划算法解最长公共子序列LCS问题
- 算法 动态规划 最长公共子序列问题
- 算法/动态规划/LongestCommonSubsquence(LCS)最长公共子序列问题
- 动态规划算法解最长公共子序列LCS问题
- 动态规划算法--解最长公共子序列问题
- 动态规划算法之最长公共子序列问题
- EL表达式,分页 ,集合遍历
- PHP奥义
- jqGrid 能获取json 数据,前端数据显示不出!(解决)
- [LeetCode]66. Plus One
- 浅谈:OSI七层模型(网络七层协议)
- 算法 动态规划 最长公共子序列问题
- ios网络连接判断
- Android TextView 单行文本的坑
- Dubbo+Zookeeper+Spring整合应用篇-Dubbo基于Zookeeper实现分布式服务
- 算法 动态规划 循环赛问题
- Android双进程保活机制示例
- OpenGL-- Shader 多个纹理 变换
- C#获取当前活动窗口进程、进程ID、程序路径
- 数据结构(一)