leetcode

来源:互联网 发布:犀牛软件建模教程 编辑:程序博客网 时间:2024/06/03 18:53

Edit Distance

Given two words word1 and word2, find the minimum number of steps required to convert word1 to word2. (each operation is counted as 1 step.)

You have the following 3 operations permitted on a word:

a) Insert a character

b) Delete a character

c) Replace a character

Solution:

  public int minDistance(String word1, String word2) {    int m = word1.length() + 1;    int n = word2.length() + 1;    int[][] map = new int[m][n];    for (int i = 1; i < m; i++) {      map[i][0] = i;    }    for (int i = 1; i < n; i++) {      map[0][i] = i;    }    for (int i = 1; i < m; i++) {      for (int j = 1; j < n; j++) {        if (word1.charAt(i - 1) == word2.charAt(j - 1)) {          map[i][j] = map[i - 1][j - 1];        } else {          map[i][j] = Math.min(map[i - 1][j - 1] + 1, Math.min(map[i][j - 1] + 1, map[i - 1][j] + 1));        }      }    }    return map[m - 1][n - 1];  }
0 0
原创粉丝点击