最长公共子序列Lcs (dp)
来源:互联网 发布:西安理工大学知行 编辑:程序博客网 时间:2024/05/17 22:18
给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的)。
比如两个串为:
abcicba
abdkscab
ab是两个串的子序列,abc也是,abca也是,其中abca是这两个字符串最长的子序列。
Input
第1行:字符串A
第2行:字符串B
(A,B的长度 <= 1000)
Output
输出最长的子序列,如果有多个,随意输出1个。
Sample Input
abcicba
abdkscab
Sample Output
比如两个串为:
abcicba
abdkscab
ab是两个串的子序列,abc也是,abca也是,其中abca是这两个字符串最长的子序列。
Input
第1行:字符串A
第2行:字符串B
(A,B的长度 <= 1000)
Output
输出最长的子序列,如果有多个,随意输出1个。
Sample Input
abcicba
abdkscab
Sample Output
abca
AC代码:
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<cmath>#include<string>#include<queue>#include<set>#include<vector>#include<map>#include<stack>#include<cstdlib>using namespace std;typedef long long ll;char a[1005],b[1005],ans[1005];int dp[1005][1055];int Max(int a,int b,int c){return max(a,max(b,c));}int main(){ scanf("%s%s",a+1,b+1); int la=strlen(a+1); int lb=strlen(b+1);// printf("%d %d\n",la,lb); for(int i=1;i<=la;i++) dp[i][0]=0; for(int i=1;i<=lb;i++) dp[0][i]=0; for(int i=1;i<=la;i++) for(int j=1;j<=lb;j++){ if(a[i]==b[j])dp[i][j]=dp[i-1][j-1]+1; else dp[i][j]=max(dp[i-1][j],dp[i][j-1]); } int k=dp[la][lb];// printf("%d\n",k); int i=la,j=lb;// printf("%d %d\n",i,j);// printf("%c\n",a[i]); while(i>0&&j>0){ if(a[i]==b[j]){ ans[k--]=a[i]; i--; j--; } else if(dp[i-1][j]>dp[i][j-1])i--; else j--; } for(int r=1;r<=dp[la][lb];r++) printf("%c",ans[r]); printf("\n"); return 0;}
阅读全文
0 0
- 最长公共子序列(LCS DP)
- 最长公共子序列LCS(DP)
- 最长公共子序列Lcs (dp)
- 最长公共子序列 LCS DP
- DP 最长公共子序列 LCS
- DP---LCS 最长公共子序列问题
- DP之最长公共子序列 LCS
- 最长公共子序列LCS-DP
- ACM DP 最长公共子序列Lcs
- LCS 求最长公共子序列 dp
- hdu 1080 (DP LCS最长公共子序列)
- LCS 最长公共子序列(DP经典问题)
- 51Nod 1006 最长公共子序列Lcs(dp)
- 最长公共子序列(LCS问题)的DP解法
- DP-POJ 1458 (LCS 最长公共子序列)
- 【tyvj】【dp】最长公共子序列(LCS)
- 基于DP的LCS(最长公共子序列)问题
- 51Nod 1006 最长公共子序列Lcs(DP)
- 中点的规律
- AVL_WORKSPACE_SUITE_
- Access denied for user 'root'@'localhost' (using password:YES) 解决方法
- 卡片游戏
- js模块化进程
- 最长公共子序列Lcs (dp)
- 将虚拟机ubuntu里的代码共享到window端进行编辑采用samba服务
- leetcode 205. Isomorphic Strings | str中字母计数(dict)与定位
- JZOJ5258. 友好数对
- Spark升级到2.0后测试stream-kafka测试报java.lang.NoClassDefFoundError: org/apache/spark/Logging错误
- Android 打造一个秒开的 Android App
- JVM如何GC,新生代,老年代,持久代,都存储哪些东西
- 题目458-小光棍数
- 操作系统实验六实验报告