这个题直接用上一个的代码就能通过,不过我看答案里有一个不是从下标1输入,是正常从下标0输入,然后在算dp的时候处理了一下。
#include <stdio.h>
#include <string.h>
int fun(char *str1,char * str2)
{
int x = strlen(str1);
int y = strlen(str2);
int c[101][101] = {0};
for(int i = 1;i<=x;i++)
{
for(int j = 1;j<=y;j++)
{
if(str1[i-1] == str2[j-1])
{
c[i][j] = c[i-1][j-1]+1;
}
else{
c[i][j] = ((c[i-1][j]>=c[i][j-1])?c[i-1][j]:c[i][j-1]);
}
}
}
return c[x][y];
}
int main()
{
char str1[100];
char str2[100];
int k;
while(scanf("%s",str1)!=EOF){
scanf("%s",str2);
k = fun(str1,str2);
printf("%d\n",k);
}
return 0;
}
京公网安备 11010502036488号