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]
相关推荐
Q_Q196328847512 分钟前
python+django/flask+vue的多媒体素材管理系统
spring boot·python·django·flask·node.js·php
我要学脑机12 分钟前
一个jupyter组件的信号查看工具
python·jupyter
黑客思维者22 分钟前
智能配电系统用户敏感数据脱敏详细设计:从静态遮盖到动态策略
c++·python·嵌入式系统·数据脱敏·智能配电系统
陈鋆23 分钟前
Langchain-Chatchat[四、RAG对话流程代码解析]
开发语言·python·langchain
ServBay30 分钟前
Django 6.0 发布,新增原生任务队列与 CSP 支持
后端·python·django
β添砖java35 分钟前
python第一阶段第九章异常、模块、包
开发语言·python
2501_9419820537 分钟前
企业微信Python SDK:高效群发消息实战
开发语言·python·企业微信
点云SLAM37 分钟前
Boost库中Math 模块的根搜索 / 根求解和示例
数学·算法·数值优化·根搜索 / 根求解和示例·函数根求解·boost模块
我搞slam39 分钟前
EM Planner算法与代码解读
算法