力扣:583. 两个字符串的删除操作
Posted qq_32036091
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了力扣:583. 两个字符串的删除操作相关的知识,希望对你有一定的参考价值。
题源: 583. 两个字符串的删除操作
本题要求经过删除之后两个字符串相等,求解最少的操作次数。根据贪心思想,最后剩余的字符串越长,删除操作越少。那么该题也就转化成了求两个字符串的最大公共子序列长度即可。
最长公共子序列的递推公式:
具体代码:
def minDistance(word1, word2):
n, m = len(word1), len(word2)
# dp = [[0] * (m + 1) for _ in range(n + 1)]
dp = [[0 for _ in range(m+1)] for __ in range(n+1)]
for i in range(1, n+1):
for j in range(1, m+1):
if word1[i-1] == word2[j-1]:
dp[i][j] = dp[i-1][j-1] + 1
else:
dp[i][j] = max(dp[i-1][j], dp[i][j-1])
return n + m - dp[n][m]
以上是关于力扣:583. 两个字符串的删除操作的主要内容,如果未能解决你的问题,请参考以下文章