leetcode 72. Edit Distance

告别裸机:在FreeRTOS上为STM32移植SOEM 1.4.0的完整指南 本文详细介绍了在FreeRTOS环境下为STM32H7系列芯片移植SOEM 1.4.0的完整指南,涵盖环境准备、任务架构设计、OSAL层适配及网络驱动优化等关键步骤。通过EtherCAT主站解决方案的实现,帮助开发者构建稳定可靠的工业自动化系统,提升实时通信性能。 阅读详情

Given two words word1 and word2, find the minimum number of operations required to convert word1 to word2.

You have the following 3 operations permitted on a word:

Insert a character
Delete a character
Replace a character
Example 1:

Input: word1 = “horse”, word2 = “ros”
Output: 3
Explanation:
horse -> rorse (replace ‘h’ with ‘r’)
rorse -> rose (remove ‘r’)
rose -> ros (remove ‘e’)

给出字符串单词word1和word2, 问最少经过几步的变换可以把word1变成word2
操作有以下几种:

  1. 插入一个字符
  2. 删除一个字符
  3. 置换一个字符

思路:
dynamic programming
以题目的例子word1 = “horse”, word2 = “ros”

假设i指向word1的字符,j指向word2的字符
假如i指向’h’, j指向’r’

题目说是把word1转换为word2,所以3种操作都在word1进行
当然三种操作进行的前提是当下i和j指向的字符不一致
一致的话直接比较下一个字符
所以
word1[i] == word2[j]时, dp[i][j] = dp[i+1][j+1]

word1[i] != word2[j]时, dp[i][j]取以下3种操作数最少的
1 . 插入
在‘h’前插入’r’,并没有实际插入所以i仍指向的是‘h’,但是默认’r’已经得到了匹配,'r’不再参与比较,所以j走向j+1,所以insert时需要的变换次数是dp[i][j+1] + 1,
*千万不要忘记+1!因为insert本身也是一次操作

2.删除
word1 = “horse”, word2 = “ros”,假如i指向’h’, j指向’r’
删除‘h’即默认’h’不再参与比较,所以i走向i+1
因此delete需要的变换次数是dp[i+1][j] + 1
*千万不要忘记+1!因为delete本身也是一次操作

3.replace
即默认i指向的字符和j指向的字符经过replace后已经一致,所以i和j同时走向下一字符
因此replace需要的变换次数是dp[i+1][j+1] + 1
*千万不要忘记+1!因为replace本身也是一次操作

最后说i和j超出word1和word2边界的情况
i超出边界意味着word1是空字符串,j超过意味着word2是空字符串

word1 = “horse”, word2 = “ros”
假如i=5, j=2, 这时word1=“”, word2=“s“
这时需要变换的次数即插入s,即1步(word2长度-j)
以此类推

    public int minDistance(String word1, String word2) {
        if (word1.length() == 0) {
            return word2.length();
        }
        
        if (word2.length() == 0) {
            return word1.length();
        }
        
        int len1 = word1.length();
        int len2 = word2.length();
        
        int[][] dp = new int[len1 + 1][len2 + 1];
        
        for (int i = 0; i < len1; i++) {
            dp[i][len2] = len1 - i;
        }
        
        for (int i = 0; i < len2; i++) {
            dp[len1][i] = len2 - i;   
        }
        
        for (int i = len1 - 1; i >= 0; i--) {
            for (int j = len2 - 1; j >= 0; j--) {
                if (word1.charAt(i) == word2.charAt(j)) {
                    dp[i][j] = dp[i + 1][j + 1];
                } else {
                    int insert = dp[i][j + 1];
                    int delete = dp[i + 1][j];
                    int replace = dp[i + 1][j + 1];
                    
                    dp[i][j] = Math.min(insert, Math.min(delete, replace)) + 1;
                }
            }
        }
        
        return dp[0][0];
    }
线性回归做糖尿病分析(diabetes数据集),并分析单个特征值与病情的关系 1.diabetes数据集 共442个样本,每个样本有十个特征,分别是 [‘age’, ‘sex’, ‘bmi’, ‘bp’, ‘s1’, ‘s2’, ‘s3’, ‘s4’, ‘s5’, ‘s6’],对应年龄、性别、体质指数、平均血压、S1~S6一年后疾病级数指标。 Targets为一年后患疾病的定量指标,值在25到346之间。 ... 阅读详情

相关推荐

从基础知识到PCB设计,打造全能硬件工程师

成为一名出色的硬件工程师需要在多个领域建立坚实的基础。从硬件基础知识、元器件学习、模拟电子电路到PCB设计,以及数字电子电路与通信,每个方面都是构建全面硬件工程师技能集的重要组成部分。通过深入学习和实践这些领域,你将能够在硬件工程领域中取得更多的成就。

weixin_46969363的博客 2725

【editdistance】在Windows环境下配置python库editdistance

编辑距离是文本处理中很常见的一种判别相似度的方法, Wikipedia In computer science, edit distance is a way of quantifying how dissimilar two strings (e.g., words) are to one another by counting the minimum number of operati

CD's Coding 8505

从0死磕全栈之使用 VS Code 调试 Next.js 应用完整指南

调试目标推荐方式客户端组件VS Code + Chrome 调试器(pwa-chrome中间件(Middleware)同服务端方式静态生成(SSG)逻辑需在next build时调试,建议改用dynamic路由临时测试通过合理配置 VS Code 调试器,你可以像调试普通 Node.js 或前端项目一样,高效排查 Next.js 应用中的各类问题。🐞。

weixin_44058951的博客 1164

NLP(自然语言处理)详细笔记

持续更新中… (本文主要是宗成庆老师的统计自然语言处理笔记,以代码实现为主) NLP目录持续更新中... 第三章:形式语言与自动机自动机在自然语言处理中的应用编辑距离 第三章:形式语言与自动机 自动机在自然语言处理中的应用 编辑距离 The edit distance is the number of characters that need to be substituted, insert...

Mr_Cat123的博客 1401

AWS入门实践-如何在AWS云上创建一个内外网隔离的生产环境

在 AWS 上建立一个内外网分离的生产环境,可以减少应用服务的暴露面,有效的保证你的应用服务器的安全。通常我们会将web应用放在外网的子网内,数据库服务器等放在内网的子网。我们将按照下图来部署动手实践环境,实现在public subnet的EC2虚拟机可以直接通过互联网可以访问,在Private subnet的EC2虚拟机不能通过互联网直接访问,但是却可以在内部来访问互联网安装应用等等。

weixin_39108752的博客 2996

用树莓派搭建全功能NAS服务器(01):树莓派基础操作&OMV搭建

写在前面 对于文件互传来说,局域网和云盘的操作总是独立的,而且很难将两者的优势合为一体。如果想要集多种优势为一体,那么NAS应该就是较为完美的解决方案了。 在这个系列中我们尽量跳过一些枯燥的理论知识,专注于说明两件事:   1.NAS是什么&能做什么 2.搭建思路&怎么做   这中间也会涉及到一些方案的选择,同类方案我也会列出来和大家分享我已知的优缺点,有兴趣可以多种尝试。(侧重于软件) 虽然是用树莓派搭建的,但是对于debian linux系统下的NAS搭建有着很好的参

斯塔克家的真维斯的工作间 2万+

python3 使用Edit distance(编辑距离)求两个二进制序列的相似性

编辑距离:又称Levenshtein距离(莱文斯坦距离也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数,如果它们的距离越大,说明它们越是不同。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。具体的执行过程参考点击打开链接 这篇博客import math def minEditDist(sm,sn): m,n = len(...

Miracle.Zhao的博客 2357

【系统架构设计师-2024下半年真题】案例分析-参考答案及部分详解(完整回忆版)

根据h中描述,为了保证高可靠性,有ping/echo,心跳机制两种策略,从资源利用率问为啥心跳更好。王工觉得使用ping/echo好,但李工觉得从系统资源利用率来说,使用心跳机制好 1、针对质量属性可以使用ping/echo和心跳模式实现,分别简述ping/echo和心跳的实现原理。 2、张工认为心跳策略比较适合,简述为什么?

数据知道的博客 1万+

LeetCode(72)Edit Distance

题目 Given two words word1 and word2, find the minimum number of steps required to convert word1 to word2. (each operation is counted as 1 step.) You have the following 3 operations permitted on a wor

BUILD 5675

Qt —— 百度离线地图 - 加载百度离线地图、及地图上绘图(附:源码)

Qt —— 加载百度离线地图、及简单绘图(附源码)

1063

C#:实现统计图像主颜色的算法(附完整源码)

C#:实现统计图像主颜色的算法(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 523

LeetCode 72. Edit Distance 题解

本题是动态规划的经典难题,也是字符串算法的核心问题之一。状态定义:dp[i][j] 表示转换子串的最小操作数状态转移:考虑插入、删除、替换三种操作边界条件:空字符串的转换通过本题可以深入理解二维动态规划的状态设计和转移方程的建立。

cannonjinx的博客 4234

uniapp - 热更新提示:WGT安装包中manifest.json文件不存在 | unexpected EOF!报错详细解决,完美搞定WGT安装包中WWW目录下manifest.json不存在问题

uniapp,安卓android,苹果ios,热更新,热更新code:-1202报错,,WGT热更新报错,uniapp热更新wgt出现报错manifest.json文件不存,uniapp安卓苹果软件热更新时出现错误unexpected EOF!如何解决,怎么解决热更新wgt报错,app新版本下载安装报错WGT安装包中manifest.json文件不存在,WGT安装包中WWW目录下manifest.json不存在,uniapp热更新报错安装失败[-1201]:WGT/WGTU文件格式错误,uniapp-wgt

✅ 精选推荐文章 1万+

【LeetCode】72. Edit Distance

微信公众号 72.Edit Distance Description: Given two wordsword1andword2, find the minimum number of operations required to convertword1toword2. You have the following 3 operations permitted on a ...

Microstrong 3110

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

LeetCode72——Edit Distance

十一月太忙,好一阵没写博客没刷题,现在事情忙完了,生活规律要逐步走入正轨。 -------------------------------------------------------------------------------------------------- LeetCode72——Edit Distance 动态规划一直不是我的强项,但是这道题恰好不知道在哪里见到过。 首先

上善若水 1579

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

LeetCode 72. Edit Distance

[Hard] LeetCode 72. Edit Distance 链接: https://leetcode.com/problems/edit-distance/ 题目描述: Given two words word1 and word2, find the minimum number of operations required to convert word1 to word2. You have the following 3 operations permitted on a word: I

MrJustin的博客 332

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

单词拼写纠正-03-72.力扣编辑距离 leetcode edit-distance

如果问题变得更复杂,例如目标字符串是一个大字典中的单词,并且需要用最少的操作将一个单词转化为目标字典中的某个单词时,可以使用 A* 搜索算法。但是,由于动态规划中的每个状态只依赖于上一行和当前行的数据,因此可以将空间优化为一维数组,从而减少空间复杂度。不过,A* 在本问题中的应用较少,因为它需要定义一个启发式函数,并且在大多数情况下,动态规划已经足够高效。记忆化递归是暴力递归的一种优化,通过在递归过程中记录已经计算过的子问题的结果,避免了重复计算。来记录子问题的结果,动态规划能够从底向上计算出最小操作数。

916

leetcode72 edit distance

题目: Given two words word1 and word2, find the minimum number of operations required to convert word1 to word2. You have the following 3 operations permitted on a word: Insert a character Delete a char...

sinat_37517996的博客 224

LeetCode72:Edit Distance

Given two words word1 and word2, find the minimum number of operations required to convert word1 to word2. You have the following 3 operations permitted on a word: Insert a character Delete a chara...

卷卷萌的博客 296

【Leetcode-72】Edit Distance

对于(i-1, j)时,d(i-1, j)表示完成从A[0, i-1]到B[0, j]的编辑次数,即现在A[0,i-1]=B[0,j],对于(i,j),我们直接把A[i]删除即可完成编辑,因此(i-1,j)对应于把A[i]删除的一次操作 对于(i, j-1)时,d(i, j-1)表示完成从A[0, i]到B[0, j-1]的编辑次数,即现在A[0,i]=B[0,j-1],对于(i,j),我们直接...

victorzzzz的专栏 228

leetcode 72. Edit Distance 编辑距离

题目要求 给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 示例 1: 输入: word1 = "horse", word2 = "ros" 输出: 3 解释: horse -> rorse (将 'h' 替换为 'r') rorse -> rose...

爱喝舒化奶的博客 552

LeetCode72 Edit Distance

LeetCode72 Edit Distance问题描述 Given two words word1 and word2, find the minimum number of steps required to convert word1 to word2. (each operation is counted as 1 step.) You have the following 3

yanqinghe123的专栏 264

Java解决LeetCode72题 Edit Distance

题目描述 地址 : leetcode.com/problems/ed… 题目描述 思路 使用dp[i][j]用来表示word1的0~i-1、word2的0~j-1的最小编辑距离 我们可以知道边界情况:dp[i][0] = i、dp[0][j] = j,代表从 "" 变为 dp[0~i-1] 或 dp[0][0~j-1] 所需要的次数 同时对于两个字符串的子串,都能分为最后一个字符相等或者不等...

weixin_34249678的博客 280

【Leetcode】 72. Edit Distance

函数中,使用大括号括起来的是可迭代对象,如列表、元组、集合等。如果我们要对一个可迭代对象中的元素进行比较,那么就可以使用。函数中,使用大括号括起来的是可迭代对象,如列表、元组、集合等。如果我们要对一个可迭代对象中的元素进行比较,那么就可以使用。表示按照子列表元素之和的大小进行比较,返回元素之和最大的子列表。表示按照子列表元素之和的大小进行比较,返回元素之和最大的子列表。如果要从这个列表中找到元素之和最大的子列表,我们可以使用。如果要从这个列表中找到元素之和最大的子列表,我们可以使用。

小白兔奶糖の博客 333
上一篇: leetcode 179. Largest Number
下一篇: leetcode 54. Spiral Matrix(螺旋矩阵)
蓝羽飞鸟
博客等级 码龄8年 1万+粉丝 727原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值