字符串有点细节
#include<stdio.h>
#include<string.h>
int max(int a,int b){
if(a>b)return a;
return b;
}
int d[1001][1001]={0};
int main(){
char s1[1005],s2[1005];
int l1,l2;
scanf("%s",s1+1);
scanf("%s",s2+1);
l1=strlen(s1);
l2=strlen(s2);
for(int i=1;i<l1;i++)
for(int j=1;j<l2;j++){
if(s1[i]==s2[j]){
d[i][j]=d[i-1][j-1]+1;
}
else d[i][j]=max(d[i-1][j],d[i][j-1]);
}
printf("%d",d[l1-1][l2-1]);
return 0;
}