动态修改距离

时间:2018-04-19 08:59:37

标签: java sorting methods

我尝试制作动态算法来计算两个字符串之间的距离。例如,如果我有“casa”和“cara”,则输出应为2(1个插入+ 1个删除),但我得到1.这是算法:

public static int distance(String word1, String word2) {
    int dp[][] = new int[m+1][n+1];
    for (int i=0; i<=m; i++) {
      for (int j=0; j<=n; j++) {
        if (i==0)
          dp[i][j] = j;  
        else if (j==0)
          dp[i][j] = i; 
        else if (str1.charAt(i-1) == str2.charAt(j-1))
          dp[i][j] = dp[i-1][j-1];
        else {
          int rep=dp[i-1][j-1];
          int ins=dp[i][j-1];
          int del=dp[i-1][j];
          dp[i][j] = 1 + Math.min(rep, Math.min(ins, del));
        }
      }
    }
    return dp[m][n];
  }

你能找到我导致错误的代码吗? 为什么使用字符串“casa”和“cara”,此算法的输出为1而不是2?

0 个答案:

没有答案