算法导论最长公共子序列
来源:互联网 发布:河源优化公司 编辑:程序博客网 时间:2024/05/02 11:36
#include<iostream>#include<vector>#include<string.h>using namespace std;void LCS_LENGTH(int B[100][100],int C[10][100],char *X,char *Y){int m=strlen(X);int n=strlen(Y);for(int i=m-1;i>=0;i--){X[i+1]=X[i];}for(int i=n-1;i>=0;i--){Y[i+1]=Y[i];}/*for(int i=1;i<=m;i++){cout<<X[i];}cout<<endl;for(int i=1;i<=n;i++){cout<<Y[i];}*/for(int i=1;i<=m;i++){C[i][0]=0;}for(int j=0;j<=n;j++){C[0][j]=0;}for(int i=1;i<=m;i++){for(int j=1;j<=n;j++){if(X[i]==Y[i]){C[i][j]=C[i-1][j-1]+1;B[i][j]=0;} else {if(C[i-1][j]>=C[i][j-1]){C[i][j]=C[i-1][j];B[i][j]=1;} else {C[i][j]=C[i][j-1];B[i][j]=-1;}}}}}//Printvoid PRINT_LCS(int B[100][100],char *X,int i,int j){if(i==0 || j==0){return;}if(B[i][j]==0){PRINT_LCS(B,X,i-1,j-1);cout<<X[i];} else {if(B[i][j]==1){PRINT_LCS(B,X,i-1,j);} else {PRINT_LCS(B,X,i,j-1);}}}int main(){int B[100][100],C[100][100];char X[100],Y[100];cin>>X;cin>>Y;int m=strlen(X);int n=strlen(Y); LCS_LENGTH(B,C,X,Y);PRINT_LCS(B,X,m,n);return 0;}
1 0
- 算法导论 最长公共子序列
- 算法导论15.4 最长公共子序列
- 算法导论之最长公共子序列
- 最长公共子序列--【算法导论】
- 算法导论(LCS最长公共子序列)
- 算法导论—最长公共子序列
- 算法导论—最长公共子序列
- 算法导论最长公共子序列
- 算法导论 15.4 最长公共子序列
- LongestCommonSequence 最长连续公共子序列(算法导论是最长公共子序列)
- 算法导论 ch15 动态规划 最长公共子序列
- 【算法导论】动态规划之最长公共子序列
- 算法导论之动态规划:最长公共子序列
- 动态规划之最长公共子序列(算法导论)
- 最长公共子序列问题 算法导论15.4
- 算法导论--动态规划(最长公共子序列)
- 算法导论之动态规划:最长公共子序列
- 算法导论-----最长公共子序列LCS(动态规划)
- java使用phantomJs抓取动态页面
- Android 校验IP的正则表达式
- springboot多模块(modules)开发
- spark streaming 读取kafka数据问题
- CSS3D--立方体
- 算法导论最长公共子序列
- HTML5 from表单
- Cocos2d-js JSB绑定学习笔记
- Java内存溢出及解决办法
- spring+sparingmvc+codis
- CSS3D--翻转
- const
- 高斯模糊实现&RenderScript(渲染脚本)
- Android AnalogClock和DigitalClock类