20170909_最长公共子序列的长度LCS
来源:互联网 发布:退款淘宝介入处理过程 编辑:程序博客网 时间:2024/06/01 19:51
20170909_最长公共子序列的长度LCS
//给出两个字符串strA和strB,求出它们的最长公共子序列的长度。//例如:strA="ABCBDAB",strB="BDCABA",则"BCBA"、"BDAB"均是他们的最长公共子序列,故其长度是4。#include<iostream>#include<string>#include<cstdio>#include<algorithm>using namespace std;const int SIZE=100;class LCSclass{public:int LCS_Length(const string &strA, const string &strB){//描述最优解的结构,并且初始化if(strA.empty() == 1 || strB.empty() == 1)return 0;int m=strA.size();int n=strB.size();//cout<<m<<","<<n;for(int i=1; i<=m; ++i)c[i][0]=0;for(int i=1; i<=n; ++i)c[0][i]=0;c[0][0]=0;//按照自底向上的方式求解出最优解的值,填表for(int i=1; i<=m; ++i){for(int j=1; j<=n; ++j){if(strA[i-1]==strB[j-1])c[i][j]=c[i-1][j-1]+1;elsec[i][j]=max(c[i-1][j],c[i][j-1]);}}int MaxLen=0;return MaxLen=c[m][n];}private:int c[SIZE][SIZE];};int main(void){LCSclass object;string strA="ABCBDAB";string strB="BDCABA";//string strA="ABCDEFGA";//string strB="BCDEFGAABCDEFGA";//string strA="A";//string strB="B";int MaxLength=0;MaxLength=object.LCS_Length(strA,strB);cout<<"The Longest Common Subsequence of "<<strA<<" and "<<strB<<" is :"<<MaxLength<<endl;system("pause");return 0;}
阅读全文
0 0
- 20170909_最长公共子序列的长度LCS
- 20170828_最长公共子序列LCS
- 给出两个字符串,找到最长公共子序列(LCS),返回LCS的长度。C实现
- LCS最长公共子序列的理解
- LCS(求出最长公共子序列长度)
- 最长公共子序列 LCS 【长度及打印】
- LCS:最长公共子序列
- LCS---最长公共子序列
- 最长公共子序列 LCS
- LCS -- 最长公共子序列
- LCS最长公共子序列
- 最长公共子序列LCS
- LCS-最长公共子序列
- 最长公共子序列 LCS
- 最长公共子序列(LCS)
- 最长公共子序列(LCS)
- 最长公共子序列LCS
- LCS最长公共子序列
- 接口和抽象类
- 基于opencv的图像拼接(二): stitch 类
- 虚拟机12安装包与安装教程百度云链接
- 缓存性线程池,cachedThreadPool
- WOJ1300-Stone
- 20170909_最长公共子序列的长度LCS
- 跳转语句
- LeetCode: -Dynamic Programming-Maximum Subarray[53]-子数组最大和
- 【006】Java语言(命令行简介及一些基本操作)
- Fugitive.vim 使用教程二
- Mysql知识总结
- 解决eclipse中java代码注释变成乱码的问题
- WOJ1301-Subsequence
- 四、Spring Cloud 的 Feign 组件