最长公共子序列和的代码错哪里了?

#include”stdio.h“
#include"string.h"
int max(int a,int b)
{
if(a>b)
return a;
else
return b;
}
int main()
{
char s[10];
char b[10];
char d[10][10];
int len1,len2,i,j,p,q,r;
scanf("%s%s",s,b);
len1=strlen(s);
len2=strlen(b);
for(i=0;i<=len1;i++)
d[i][0]=i;
for(j=0;j<=len2;j++)
d[0][j]=j;
for(i=1;i<=len1;i++)
{
for(j=1;j<=len2;j++)
{
if(s[i]==b[j])
{
d[i][j]=d[i][j];
}
else{
p=d[i][j-1]-'0'+1;
q=d[i-1][j]-'0'+1;
r=d[i-1][j-1]-'0'+1;
d[i][j]=max(p,max(q,r))+'0';
}
}
}
printf("%c",d[len1][len2]);
return 0;
}

查看全部
NeQrhk
NeQrhk
2015/09/20 23:03
  • acm
  • 点赞
  • 收藏
  • 回答
    私信

1个回复