Common Subsequence
Posted _LinesYao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Common Subsequence相关的知识,希望对你有一定的参考价值。
题意:两个字符串a,b的最长公共子序列长度。
思路:f[i][j]表示a串到第i位,b串到第j位的最长公共子序列长度。
#include<cstdio> #include<string> #include<cstring> #include<iostream> using namespace std; int f[1010][1010]; int main() { string a,b; while(cin>>a>>b) { int alen=a.size(); int blen=b.size(); memset(f,0,sizeof f); for(int i=1;i<=alen;i++) { for(int j=1;j<=blen;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]); } } } printf("%d\\n",f[alen][blen]); } return 0; }
以上是关于Common Subsequence的主要内容,如果未能解决你的问题,请参考以下文章
poj 1458 Common Subsequence ——(LCS)
POJ 1458 - Common Subsequence(最长公共子串)
动态规划 ---- 最长公共子序列(Longest Common Subsequence, LCS)
1143. Longest Common Subsequence