莱文斯坦距离

IMG_0694.png

Leetcode 583.两个字符串的删除操作
略微修改了莱文斯坦距离公式,题目中只有删除操作,无替换 所以

 由
 # 替换,插入,删除
 levab[i][j] = min(levab[i - 1][j - 1] + 1, levab[i][j - 1] + 1, levab[i - 1][j] + 1)
 ----->
 levab[i][j] = min(levab[i - 1][j - 1] + 2, levab[i][j - 1] + 1, levab[i - 1][j] + 1)

代码:

class Solution:
    def minDistance(self, word1: str, word2: str) -> int:

        levab = [[0 for _ in range(len(word2) + 1)] for _ in range(len(word1) + 1)]
        # 1.计算空字符串到各字符的莱文斯坦距离
        for j in range(len(word2) + 1):
            for i in range(len(word1) + 1):
                if min(i, j) == 0:
                    levab[i][j] = max(i, j)
                    # 如果ai = bj 则不做任何操作 ,莱文斯坦距离等于上一个子串的莱文斯坦距离
                elif word2[j-1] == word1[i-1]:
                    levab[i][j]=levab[i - 1][j - 1]
                else:
                    # 替换,插入,删除
                    levab[i][j] = min(levab[i - 1][j - 1] + 2, levab[i][j - 1] + 1, levab[i - 1][j] + 1)

        return levab[-1][-1]
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,689评论 0 4
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,725评论 0 5
  •   引用类型的值(对象)是引用类型的一个实例。   在 ECMAscript 中,引用类型是一种数据结构,用于将数...
    霜天晓阅读 1,221评论 0 1
  • 前言 2. 实现 Singleton 3. 数组中重复的数字 4. 二维数组中的查找 5. 替换空格 6. 从尾到...
    Observer_____阅读 3,167评论 0 1
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,679评论 1 32

友情链接更多精彩内容