leetcode72. 编辑距离

leetcode72. 编辑距离

题目

思路

dp[i][j] 代表 word1i 位置转换成 word2j 位置需要最少步数,所以,

word1[i] == word2[j]dp[i][j] = dp[i-1][j-1]

word1[i] != word2[j]dp[i][j] = 1 + min(dp[i-1][j-1], dp[i-1][j], dp[i][j-1])

其中,dp[i-1][j-1] 表示替换操作,dp[i-1][j] 表示对word1插入,dp[i][j-1] 表示对word2插入。

注意,针对第一行,第一列要单独考虑,我们引入 '' 下图所示,初始化如下所示:

代码

python 复制代码
class Solution:
    def minDistance(self, word1: str, word2: str) -> int:
        dp = [[0] * (len(word2)+1) for _ in range(len(word1)+1)]
        for i in range(len(word1)+1):
            dp[i][0] = i
        for j in range(len(word2)+1):
            dp[0][j] = j
        for i in range(1, len(word1)+1):
            for j in range(1, len(word2)+1):
                if word1[i-1] == word2[j-1]:
                    dp[i][j] = dp[i-1][j-1]
                else:
                    dp[i][j] = 1 + min(dp[i-1][j-1], dp[i-1][j], dp[i][j-1])
        return dp[-1][-1]
相关推荐
weixin_4624462312 分钟前
Python 异步下载文件实战:使用 asyncio + aiohttp 实现高并发下载
python·并发下载
bloglin9999913 分钟前
anaconda环境中如何生成requirements
python
zl_vslam14 分钟前
SLAM中的非线性优-3D图优化之绝对位姿SE3约束右扰动(十七)
人工智能·算法·计算机视觉·3d
【赫兹威客】浩哥19 分钟前
【赫兹威客】框架模板-后端bat脚本部署教程
python·django
Cestb0n19 分钟前
某果app 加密校验算法逆向分析
python·算法·逆向安全
薛定谔的猫喵喵22 分钟前
解决 xlrd 2.0+ 版本只支持 xls 格式的问题
python·excel
机器学习之心32 分钟前
MATLAB基于近红外光谱检测的菠萝含水率预测(多种预处理+PLS)
人工智能·算法·matlab·近红外光谱检测
2501_9418053137 分钟前
使用Python和Go构建高性能分布式任务调度系统的实践分享
分布式·python·golang
OLOLOadsd1231 小时前
基于YOLO11-C3k2-LFE的岩石颗粒智能检测与识别系统_2
python
程序员-King.1 小时前
day166—递归—多边形三角剖分的最低得分(LeetCode-1039)
算法·leetcode·深度优先·动态规划·递归