最长公共子序列核心代码(clodeblocks运行通过)
来源:互联网 发布:淘宝开店容易经营吗 编辑:程序博客网 时间:2024/04/29 13:10
1.最长公共子序列核心代码(clodeblocks运行通过)
#include <iostream>
using namespace std;
int b[100][100];
int c[100][100];
void LCSLength(int m,int n,char *x,char *y/*,int **c,int **b */)
{
int i,j;
for(i=1;i<=m;i++)
{
c[i][0]=0;
}
for(j=1;j<=n;j++)
{
c[0][j]=0;
}
for(i=1;i<=m;i++)
for(j=1;j<=m;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()
{
char x[10]={'0','A','B','C','B','D','A','B'};//第一个子序列
char y[10]={'0','B','D','C','A','B','A'};//第二个子序列
LCSLength(7,6,x,y);//LCSLength(第一个子序列的长度,第二个子序列的长度,x,y)
LCS(7,6,x);//LCSLength(第一个子序列的长度,第二个子序列的长度,x)
return 0;
}
2.运行结果
- 最长公共子序列核心代码(clodeblocks运行通过)
- 最长公共子序列问题-求所有公共子序列(java核心代码实现)
- 最长公共子序列(简化代码)
- 关于最长公共子序列(SIM核心算法)
- hdu 1159 Common Subsequence (最长公共子序列 +代码)
- DP—求最长公共子序列LCS(代码)
- 最长公共子序列Java代码实现
- 最长公共子序列,递归简单代码
- 最长公共子序列 java 代码实现
- 各类算法技巧核心代码,知识点归纳总结之最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列...
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- HDU 1387 && UVa 540 Team Queue(队列应用)
- IDEA 热部署 update and resource
- JS AES加密与PHP解密
- Oracle imp&&exp 导入导出.dmp文件
- viewpager中彻底性动态添加、删除Fragment
- 最长公共子序列核心代码(clodeblocks运行通过)
- TXT文本批量线程处理V1.1
- PL/SQL远程连接远程数据库(不用安装Oracle服务)-详细教程
- 在Android加入和使用Realm
- 维度漫谈
- 自制图库
- ANDROID 开发常用的框架、工具、API最全集合
- 【HDU】5759 Gardener Bo【线段树+lca+分类讨论】
- 使用charles调试接口