3
public int minDistance(String word1, String word2) {4
int m = word1.length();5
int n = word2.length();6
int dp[][] = new int[m][n];7
for (int i = 0; i < m; i++) {8
for (int j = 0; j < n; j++) {12
return solve(word1, word2, m - 1, n - 1, dp);15
public int solve(String str1, String str2, int m, int n, int dp[][]) {25
if (str1.charAt(m) == str2.charAt(n)) {26
return solve(str1, str2, m - 1, n - 1, dp);28
int min = Math.min(solve(str1, str2, m - 1, n, dp), solve(str1, str2, m, n - 1, dp));29
dp[m][n] = 1 + Math.min(min, solve(str1, str2, m - 1, n - 1, dp));