编辑距离算法

news2024/11/25 1:42:19

给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数  。

你可以对一个单词进行如下三种操作:

插入一个字符
删除一个字符
替换一个字符

示例 1:

输入:word1 = "horse", word2 = "ros"
输出:3
解释:
horse -> rorse (将 'h' 替换为 'r')
rorse -> rose (删除 'r')
rose -> ros (删除 'e')
示例 2:

输入:word1 = "intention", word2 = "execution"
输出:5
解释:
intention -> inention (删除 't')
inention -> enention (将 'i' 替换为 'e')
enention -> exention (将 'n' 替换为 'x')
exention -> exection (将 'n' 替换为 'c')
exection -> execution (插入 'u')
 

提示:

0 <= word1.length, word2.length <= 500
word1 和 word2 由小写英文字母组成

思路:如下图,如果相同就等于左上角的值,不同就等于(左上、上方、左方)的值+1。

左上、上方、左方表示替换删除插入三种状态,对应顺序可以不同。

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String word_1="horse",word_2="ros";
		System.out.println(fun(word_1,word_2));    //3
	}
	public static int fun(String word_1,String word_2) {
		int dp[][]=new int[word_1.length()+1][word_2.length()+1];
		dp[0][0]=0;
		
		for(int i=1;i<=word_1.length();i++)
			dp[i][0]=i;
		for(int j=1;j<=word_2.length();j++)
			dp[0][j]=j;
		
		for(int i=1;i<=word_1.length();i++) {
			for(int j=1;j<=word_2.length();j++) {
				if(word_1.charAt(i-1)==word_2.charAt(j-1))
					dp[i][j]=dp[i-1][j-1];
				else
					dp[i][j]=Math.min(dp[i-1][j-1], Math.min(dp[i-1][j], dp[i][j-1]))+1;
				
			}
		}
		
		return dp[word_1.length()][word_2.length()];
	}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/566676.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT真的可以帮助你申请留学吗?未必!

在留学申请的整个流程中&#xff0c;如果说哪一项是最不可或缺的项目&#xff0c;那“文书写作”一定首当其冲。国外院校对学生的评估参考项目&#xff0c;除了文书以外&#xff0c;也在不断地探寻更多的评估方式来全面地了解申请的学生。 从加州大学的申请流程中可以了解到这方…

Spring 之 jwt,过滤器,拦截器,aop,监听器

Spring 之 jwt&#xff0c;过滤器&#xff0c;拦截器&#xff0c;aop&#xff0c;监听器 一、jwt编写1.1 pom1.2 JwtUtils1.3 注意1.4 用法 二、过滤器2.1 原理2.2 使用场景2.3 使用步骤2.3.1 自定义过滤器类implements Filter2.3.2 配置类2.3.3 过滤器使用场景 2.4 问题 三、拦…

中美信托金融大厦(总体)建筑能耗管理系统的设计与应用

摘要&#xff1a;大型公共建筑总面积不足城镇建筑总面积的4%&#xff0c;但总能耗却占全国城镇总耗电量的22%&#xff0c;大型公共建筑单位面积年耗电量达到70&#xff5e;300KWh&#xff0c;为普通居民住宅的10&#xff5e;20倍。公共建筑是节能大户和节能主要对象&#xff0c…

这些论文的作者居然是猫、狗、仓鼠……

01 猩猩 Journal of Applied Animal Welfare Science 期刊在2007年发表了论文 Welfare of Apes in Captive Environments: Comments On, and By, a Specific Group of Apes &#xff08;圈养环境中的猿类福利&#xff1a;对特定类群的评论”&#xff09;&#xff0c;作者Sue S…

Web服务组合优化 基于改进哈里斯鹰算法的Web服务组合优化【Matlab代码22#】

文章目录 【可更换其他算法&#xff0c;获取资源请见文章第7节&#xff1a;资源获取】1. Web服务2. QoS感知的Web服务组合3. 改进后的CHHO算法3.1 原始HHO算法3.2 CHHO算法 4. 优化目标5. 部分代码展示6. 仿真结果展示7. 资源获取 【可更换其他算法&#xff0c;获取资源请见文章…

详解token已过期含义及解决方 token过期是否需要重新登录

详解token已过期含义及解决方 token过期是否需要重新登录Web应用和用户的身份验证息息相关&#xff0c;从单一服务器架构到分布式服务架构再到微服务架构&#xff0c;用户安全认证和授权的机制也一直在演进&#xff0c;下文对各个架构下的认证机制做个总结。单一服务器架构该架…

day19 - 使用高通滤波提取图像边缘

在OpenCV中&#xff0c;对于图像或者视频的处理都或多或少的会涉及傅里叶变换的概念。在数学上&#xff0c;傅里叶变换是指所有的波形都可以由一系列简单且频率不同的正弦曲线叠加得到。也就是说&#xff0c;人们所看到的波形都是由其他波形叠加得到的。这个概念对操作图像非常…

Linus Torvalds发布了第一个Linux内核6.4候选版本

导读自Linux内核6.3发布和下一个内核系列Linux 6.4的合并窗口开放以来&#xff0c;已经过去了一段时间&#xff0c;近日&#xff0c;Linus Torvalds发布了第一个RC&#xff08;候选发布版&#xff09;的里程碑&#xff0c;供公众测试。 为期两周的Linux内核6.4合并窗口现已关闭…

3D开发程序员,如何在程序中将GLB格式转OBJ

Aspose.3D 是一个功能丰富的游戏软件和计算机辅助设计&#xff08;CAD&#xff09;的API&#xff0c;可以在不依赖任何3D建模和渲染软件的情况下操作文档。API支持Discreet3DS, WavefrontOBJ, FBX (ASCII, Binary), STL (ASCII, Binary), Universal3D, Collada, glTF, GLB, PLY…

微信小程序的基本使用以及安装教程

目录 一、使用微信开发者工具1、第一步先进行安装微信开发者工具2、使用方式安装完成后的使用步骤项目的大概界面 二、注册小程序账号在此处申请AppID&#xff0c;用于微信开发者工具的建立项目使用 三、使用微信官方文档 一、使用微信开发者工具 1、第一步先进行安装微信开发…

ASP-IIS中间件文件解析与写权限

ASP-IIS中间件文件解析与写权限 IIS文件解析 IIS 6 解析漏洞 1、该版本默认会将*.asp;.jpg 此种格式的文件名&#xff0c;当成Asp解析 2、该版本默认会将*.asp/目录下的所有文件当成Asp解析。 如&#xff1a;logo.asp;.jpg xx.asp/logo.jpgIIS 7.x 解析漏洞 在一个文件路…

Dubbo 3.2.1预览版发布,很多方面有改变

导读Dubbo 3.2.1预览版发布&#xff0c;很多方面有改变&#xff0c;比如&#xff1a;错误修正&#xff0c;代码增强&#xff0c;依赖性升级等。 改变了什么 功能介绍 添加追踪启动器 && 添加 zipkin 自动配置 by conghuhu in #12013QoS支持匿名命令允许列表 by Album…

2023智源大会议程公开 | 基于认知神经科学的大模型

2023年&#xff0c;人工智能新研究、新系统、新产品竞放——我们即将见证另一场有关智能的惊叹演化。6月9日&#xff0c;2023北京智源大会&#xff0c;将邀请这一领域的探索者、实践者、以及关心智能科学的每个人&#xff0c;共同拉开未来舞台的帷幕&#xff0c;你准备好了吗&a…

设备远程运维,实现设备管理智能化!

一、设备管理现状 设备运行状况&#xff1a;设备分布各地&#xff0c;无法远程监测设备运行参数、故障情况&#xff0c;对名下设备的运营情况懵然不知&#xff0c;能耗产量等关键数据无从知晓。 设备运营服务&#xff1a;当设备发生故障时&#xff0c;无法判断故障原因&#x…

IDEA重装后打开的一些设置

文章目录 1. 支持正版&科学永久2. 打开本地项目成功运行2. 修改IDEA的一些基本设置 1. 支持正版&科学永久 略&#xff08;狗头&#xff09;~ 2. 打开本地项目成功运行 刚打开项目&#xff0c;application是红叉状态点击Edit Configuration,配置好settings.xml和mave…

分布式项目10. js中src进行服务器之间的访问和优化使用jsonp的ajax请求处理访问

一般使用ajax来访问不同服务器的数据&#xff0c;可行吗&#xff1f; 做个实验&#xff1a; 第一步&#xff1a;在本服务器中使用ajax技术访问本服务器数据 <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>测试JSON跨域…

【SpringMVC】SpringMVC的入门程序——HelloWorld(有点详细)

介绍 这里是小编成长之路的历程&#xff0c;也是小编的学习之路。希望和各位大佬们一起成长&#xff01; 以下为小编最喜欢的两句话&#xff1a; 要有最朴素的生活和最遥远的梦想&#xff0c;即使明天天寒地冻&#xff0c;山高水远&#xff0c;路远马亡。 一个人为什么要努力&a…

GP05丨多因子IC对冲

量化策略开发&#xff0c;高质量社群&#xff0c;交易思路分享等相关内容 大家好&#xff0c;今天我们分享股票社群第5期量化策略——多因子IC对冲。 在前几期中&#xff0c;我们分享了GP01多因子、ETF轮动策略及Plus版本、网格等等。本期我们继续分享多因子策略。 策略背景与…

大数据治理入门系列:数据血缘关系

血缘关系在人类社会中扮演着重要角色。大多数家庭是基于血缘关系形成的&#xff0c;而家庭作为社会的基本单元&#xff0c;对维系社会稳定发挥着重要关系。其实&#xff0c;数据之间也存在类似的血缘关系。数据从产生、加工、流转&#xff0c;一直到消亡&#xff0c;每个环节必…

为什么要分库分表?

不急于上手实战 ShardingSphere 框架&#xff0c;先来复习下分库分表的基础概念&#xff0c;技术名词大多晦涩难懂&#xff0c;不要死记硬背理解最重要&#xff0c;当你捅破那层窗户纸&#xff0c;发现其实它也就那么回事。 什么是分库分表 分库分表是在海量数据下&#xff0…