题解 | #编辑距离(一)#

编辑距离(一)

https://www.nowcoder.com/practice/6a1483b5be1547b1acd7940f867be0da

import java.util.*;

public class Solution {
    public int editDistance (String str1, String str2) {
        int n = str1.length() , m = str2.length();
        int[][] dp = new int[n+1][m+1];
        for(int i = 1; i <= n; i ++){
            dp[i][0] = i;
        }
        for(int j = 1; j <= m; j ++){
            dp[0][j] = j;
        }
        
        for(int i = 1; i <= n; i++){
            for(int j = 1; j <= m; j++){
                int l = dp[i-1][j] + 1; // 删除
                int u = dp[i][j-1] + 1; // 插入
                int lu = dp[i-1][j-1]; // 修改
                if(str1.charAt(i-1) != str2.charAt(j-1)){
                    lu += 1;
                }
                dp[i][j] = Math.min(Math.min(l,u),lu);
            }
        }
        return dp[n][m];
    }
}

全部评论

相关推荐

LXXXXd:有点杂,想搞自动化的话没必要把法律的经历写上去
点赞 评论 收藏
分享
11-13 12:02
门头沟学院 Java
这个名称和你无缘:好骂,好骂 别学计算机就行了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务