码迷,mamicode.com
首页 > 其他好文 > 详细

求两字符串的最长相同子序列

时间:2020-04-03 20:24:58      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:相同   ring   子序列   序列   include   amp   二维   out   using   

/*
//ABDCDCBABC  CBABCDCDBA   7
最长相同子序列(不需要连续)
采用动态规划DP 二维表 输出最后一个位置就可
*/
#include <iostream> #include <string> using namespace std; int n, m; string a, b; int main() { cin >> a >> b; n = a.size(); m = b.size(); int f[n+1][m+1]; for(int i=0; i<=m; i++){ f[0][i] = 0; } for(int i=0; i<=n; i++){ f[i][0] = 0; } for(int i=1; i<=n; i++) for(int j=1; j<=m; j++) if(a[i-1] == b[j-1]) f[i][j] = f[i-1][j-1] + 1; else f[i][j] = max(f[i-1][j], f[i][j-1]); cout << f[n][m] << endl; for(int i=0; i<=n; i++) for(int j=0; j<=m; j++){ cout<<f[i][j]; if(j%m==0&&j!=0)cout<<endl; } return 0; }

  

求两字符串的最长相同子序列

标签:相同   ring   子序列   序列   include   amp   二维   out   using   

原文地址:https://www.cnblogs.com/Stephen-Jixing/p/12628365.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!