int dp[500][500];
int min(int x,int y,int z)
{
int a;
if(x<y) a=x;
else a=y;
if(a>z) a=z;
return a;
}
int minDistance(char* word1, char* word2) {
int n=strlen(word1),m=strlen(word2),i,j;
memset(dp,0,sizeof(dp));
dp[0][0]=(word1[0]==word2[0]? 0:1);
if(dp[0][0]==1&&word1[0]!=word2[1]) dp[0][1]=2;
else dp[0][1]=1;
if(dp[0][0]==1&&word1[1]!=word2[0]) dp[1][0]=2;
else dp[1][0]=1;
for(i=1;i<n;i++)
{
for(j=1;j<m;j++)
{
if(word1[i]==word2[j])
dp[i][j]=dp[i-1][j-1];
else
dp[i][j]=1+min(dp[i-1][j],dp[i-1][j-1],dp[i][j-1]);
}
}
return dp[i-1][j-1];
}
请问我的代码哪里有问题,为什么算出来的是错的啊,绞尽脑汁