leetcode 72. Edit Distance
编辑距离,动态规划
public class Solution { public int minDistance(String word1, String word2) { int l_1 = word1.length(); int l_2 = word2.length(); // if(l_1==0) return l_2; // if(l_2==0) return l_1; int[][] dp = new int[l_1+1][l_2+1]; for(int i=1;i<=l_1;i++){ dp[i][0]=i; } for(int j=1;j<=l_2;j++){ dp[0][j]=j; } for(int i=1;i<=l_1;i++){ for(int j=1;j<=l_2;j++){ //replace if(word1.charAt(i-1)==word2.charAt(j-1)){ dp[i][j] = dp[i-1][j-1]; }else{ dp[i][j] = dp[i-1][j-1] + 1; } //insert dp[i][j] = dp[i][j]<(dp[i][j-1]+1)?dp[i][j]:(dp[i][j-1]+1); //delete dp[i][j] = dp[i][j]<(dp[i-1][j]+1)?dp[i][j]:(dp[i-1][j]+1); } } return dp[l_1][l_2]; } }