Leetcode712.MinimumASCIIDeleteSumforTwoStrings
- 创业
- 2025-09-09 14:36:02

Problem
Given two strings s1 and s2, return the lowest ASCII sum of deleted characters to make two strings equal.
AlgorithmDynamic Programming (DP): similar as Longest Common Subsequence (LCS).
If s1[i] != s2[j]: F ( i , j ) = min ( F ( i − 1 , j ) + cost ( s 1 [ i ] ) , F ( i , j − 1 ) + cost ( s 2 [ j ] ) ) F(i, j) = \min \left( F(i-1, j) + \text{cost}(s1[i]), \, F(i, j-1) + \text{cost}(s2[j]) \right) F(i,j)=min(F(i−1,j)+cost(s1[i]),F(i,j−1)+cost(s2[j]))
If s1[i] == s2[j]: F ( i , j ) = F ( i − 1 , j − 1 ) F(i, j) = F(i-1, j-1) F(i,j)=F(i−1,j−1)
Code class Solution: def minimumDeleteSum(self, s1: str, s2: str) -> int: l1, l2 = len(s1) + 1, len(s2) + 1 dp = [[0] * l2 for _ in range(l1)] for i in range(1, l1): dp[i][0] = dp[i-1][0] + ord(s1[i-1]) for j in range(1, l2): dp[0][j] = dp[0][j-1] + ord(s2[j-1]) for i in range(1, l1): for j in range(1, l2): if s1[i-1] == s2[j-1]: dp[i][j] = dp[i-1][j-1] else: dp[i][j] = min(dp[i-1][j] + ord(s1[i-1]), dp[i][j-1] + ord(s2[j-1])) return dp[l1-1][l2-1]Leetcode712.MinimumASCIIDeleteSumforTwoStrings由讯客互联创业栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Leetcode712.MinimumASCIIDeleteSumforTwoStrings”
下一篇
Express路由路径正则详解