题目描述
这个题目怎么写我就不讲了上面大佬都说过了,我写这个题解就是和用c语言写的同学们说一下应为要输入字符所以你们一定要注意回车我就被这个问题卡了好久如果你知道当我没说
C 代码
#include <stdio.h>
#define N 1010
int n,m;
int dp[N][N]={0};
char di[N],er[N];
int max(int a,int b)
{
if(a > b) return a;
return b;
}
int main()
{
int i,j;
scanf("%d%d",&n,&m);
getchar(); //用来吸收回车
for(i=1;i<=n;i++)
scanf("%c",&di[i]);
getchar(); //用来吸收回车
for(j=1;j<=m;j++)
scanf("%c",&er[j]);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
dp[i][j]=max(dp[i][j-1],dp[i-1][j]);
if(di[i] == er[j]) dp[i][j]=max(dp[i][j],dp[i-1][j-1]+1);
}
printf("%d",dp[n][m]);
return 0;
}