微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何正确实施动态规划解决方案以使用后缀编辑距离?

如何解决如何正确实施动态规划解决方案以使用后缀编辑距离?

我正在尝试为编辑距离实施表格 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 举报,一经查实,本站将立刻删除。