#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
long long int dp[1001][1001];
int main()
{
int i,j,m,n;
char a[100005],b[100005];
while(scanf("%s%s",a,b)!=EOF)
{
n=strlen(a),m=strlen(b);
for(i=0;i<n;i++)
{
for(j=0;j<=m;j++)
{
dp[i][j]=0;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(a[i]==b[j])
{
dp[i+1][j+1]=dp[i][j]+1;
}
else
dp[i+1][j+1]=max(dp[i][j+1],dp[i+1][j]);
}
}
printf("%lld\n",dp[i][j]);
}
return 0;
}
DP 最长公共子序列(板子)
猜你喜欢
转载自blog.csdn.net/qq_41243063/article/details/81382373
今日推荐
周排行