Java String Distance editDistance(String word1, String word2)

Here you can find the source of editDistance(String word1, String word2)

Description

edit Distance

License

Apache License

Declaration

public static int editDistance(String word1, String word2) 

Method Source Code

//package com.java2s;
//License from project: Apache License 

public class Main {
    public static int editDistance(String word1, String word2) {
        int len1 = word1.length();
        int len2 = word2.length();

        // len1+1, len2+1, because finally return dp[len1][len2]
        int[][] dp = new int[len1 + 1][len2 + 1];

        for (int i = 0; i <= len1; i++) {
            dp[i][0] = i;//from   www  .jav a2s  . c  om
        }

        for (int j = 0; j <= len2; j++) {
            dp[0][j] = j;
        }

        //iterate though, and check last char
        for (int i = 0; i < len1; i++) {
            char c1 = word1.charAt(i);
            for (int j = 0; j < len2; j++) {
                char c2 = word2.charAt(j);

                //if last two chars equal
                if (c1 == c2) {
                    //update dp value for +1 length
                    dp[i + 1][j + 1] = dp[i][j];
                } else {
                    int replace = dp[i][j] + 1;
                    int insert = dp[i][j + 1] + 1;
                    int delete = dp[i + 1][j] + 1;

                    int min = replace > insert ? insert : replace;
                    min = delete > min ? min : delete;
                    dp[i + 1][j + 1] = min;
                }
            }
        }

        return dp[len1][len2];
    }
}

Related

  1. editDistance(String s, String t)
  2. editDistance(String s0, String s1)
  3. EditDistance(String s1, String s2)
  4. editDistance(String str1, String str2)
  5. editDistance(String string1, String string2)
  6. Sqr(String[] X)