美文网首页
LeetCode 第712题:两个字符串的最小 ASCII 删除

LeetCode 第712题:两个字符串的最小 ASCII 删除

作者: 放开那个BUG | 来源:发表于2021-05-12 14:52 被阅读0次

1、前言

题目描述

2、思路

还是使用编辑距离的思路来做。话说,关于两个字符串的删除或者其他操作变成另一个字符串的题,貌似都可以使用编辑距离的思路来做,非常简单直观。

3、代码

class Solution {
    public int minimumDeleteSum(String s1, String s2) {
        int m = s1.length(), n = s2.length();
        int[][] dp = new int[m + 1][n + 1];

        for(int i = 1; i <= m; i++){
            dp[i][0] = dp[i - 1][0] + s1.charAt(i - 1);
        }
        for(int i = 1; i <= n; i++){
            dp[0][i] = dp[0][i - 1] + s2.charAt(i - 1);
        }

        for(int i = 1; i <= m; i++){
            for(int j = 1; j <= n; j++){
                if(s1.charAt(i - 1) == s2.charAt(j - 1)){
                    dp[i][j] = dp[i - 1][j - 1];
                }else{
                    dp[i][j] = min(dp[i - 1][j - 1] + s1.charAt(i - 1) + s2.charAt(j - 1),
                            dp[i - 1][j] + s1.charAt(i - 1), dp[i][j - 1] + s2.charAt(j - 1));
                }
            }
        }

        return dp[m][n];
    }

    private int min(int one, int two, int three){
        return Math.min(one, Math.min(two, three));
    }
}

相关文章

网友评论

      本文标题:LeetCode 第712题:两个字符串的最小 ASCII 删除

      本文链接:https://www.haomeiwen.com/subject/ztjuiktx.html