题目描述
输入两个01串,输出它们的最长公共子序列的长度
输入输出格式
输入格式:
一行,两个01串
输出格式:
最长公共子序列的长度
输入输出样例
说明
01串长度≤10000
思路:lcs
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; string s1,s2; int f[5010][5010]; int main(){ cin>>s1>>s2; int len1=s1.length(); int len2=s2.length(); s1=' '+s1;s2=' '+s2; for(int i=1;i<=len1;i++) for(int j=1;j<=len2;j++) if(s1[i]==s2[j]) f[i][j]=f[i-1][j-1]+1; else f[i][j]=max(f[i-1][j],f[i][j-1]); cout<<f[len1][len2]; }