0
点赞
收藏
分享

微信扫一扫

LeetCode题解(0712):两个字符串的最小ASCII删除和(Python)


题目:​​原题链接​​(中等)

标签:动态规划

解法

时间复杂度

空间复杂度

执行用时

Ans 1 (Python)

O ( N × M )

O ( N × M )

676ms (71.56%)

Ans 2 (Python)

Ans 3 (Python)

解法一:

class Solution:
def minimumDeleteSum(self, s1: str, s2: str) -> int:
dp = [[0] * (len(s2) + 1) for _ in range(len(s1) + 1)]

for i in range(1, len(s1) + 1):
dp[i][0] = dp[i - 1][0] + ord(s1[i - 1])
for j in range(1, len(s2) + 1):
dp[0][j] = dp[0][j - 1] + ord(s2[j - 1])

for i in range(1, len(s1) + 1):
for j in range(1, len(s2) + 1):
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[-1][-1]


举报

相关推荐

0 条评论