问题描述
我正在尝试为编辑距离实施表格 dp 解决方案。这是一个leetcode问题。我的想法是使用后缀而不是前缀,并返回两个单词开头的后缀。
然而,它在 word1 = "horse" 和 word2 = "ros" 的情况下低于要求。它返回 2 而不是 3,这是正确的解决方案。就我的代码而言,这应该是对第一个单词的 3 次操作:删除 e、删除 r 和将 h 切换为 r。
如果有人能帮助我解决我在实施过程中遗漏或误解的地方,那将会很有帮助。我的第一直觉是我的 if-else 子句遗漏了一些东西。
def mindistance(self,word1: str,word2: str) -> int:
dp = [[0 for j in range(len(word2)+1)] for i in range(len(word1)+1)]
for i in range(len(word1)-1,-1,-1):
for j in range(len(word2)-1,-1):
if word1[i] == word2[j]:
dp[i][j] = dp[i+1][j+1]
else:
dp[i][j] = 1 + min(dp[i+1][j+1],dp[i][j+1],dp[i+1][j])
return dp[0][0]
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)