动态规划(dynamic programming)之:edit-distance(word1变成word2的最小步骤数)

本文介绍了如何使用动态规划解决编辑距离问题,即计算将单词word1转换为word2所需的最小步骤数。允许的操作包括插入、删除和替换字符。通过建立双序列动态规划模型,分析了递推关系,并详细解释了不同情况下的状态转移方程,为解决此类问题提供了清晰的思路。
摘要由CSDN通过智能技术生成

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 word:
Insert a character(插入)
Delete a character(删除)
Replace a character(代替)
Example
Given word1 = "mart" and word2 = "karma", return 3

 

题解1 - 双序列动态规划
两个字符串⽐较,求最值,直接看似乎并不能直接找出解决⽅案,这时往往需要使⽤动态规划的思想寻找递推关系。使⽤双序列动态规划的通⽤做法,不妨定义 f[i][j] 为字符串1的前 i 个字符和字符串2的前 j 个字符的编辑距离,那么接下来寻找其递推关系。增删操作互为逆操作,即增或者删产⽣的步数都是⼀样的。故初始化时容易知道 f[0][j] = j, f[i][0] = i , 接下来探讨 f[i][j]和 f[i - 1][j - 1] 的关系,和 LCS 问题类似,我们分两种情况讨论,即 word1[i] == word2[j]与否,第⼀种相等的情况有:
1. i == j , 且有 word1[i] == word2[j] , 则由 f[i - 1][j - 1] -> f[i][j] 不增加任何操作,有 f[i][j] = f[i -

当你遇到“Cannot resolve com.baomidou:dynamic-datasource-spring-boot-starter:3.5.0”的错误信息,通常意味着在你的项目中无法找到指定版本的`com.baomidou:dynamic-datasource-spring-boot-starter`依赖项。这可能是由于以下几个原因造成的: ### 解决步骤: 1. **确认依赖是否正确引入**: - 检查你的 `pom.xml` 文件或其他构建工具文件(如 Gradle 的 build.gradle),确保已经正确添加了所需的依赖。检查依赖的坐标、版本等信息是否完全匹配。 ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>dynamic-datasource-spring-boot-starter</artifactId> <version>3.5.0</version> </dependency> ``` 2. **更新Maven仓库配置**: 如果你的项目使用的是Maven作为构建工具,确保本地的Maven库已经包含了所需依赖。有时候,本地库可能过期或缺失。可以尝试清理并重新生成Maven项目,命令如下: ```bash mvn clean install ``` 3. **检查远程仓库状态**: 确认远程仓库(如中央仓库、阿里云maven仓库等)中包含所需的依赖版本。有时因为仓库维护或网络问题导致访问失败。 4. **更新到最新版本**: 若发现特定版本不可用,考虑将依赖升级到最新版本。这有可能解决兼容性和功能问题。 5. **使用第三方仓库**: 如果官方仓库无法获取到所需依赖,可以考虑从其他可信的第三方仓库(如JitPack或私有Maven仓库)下载。 6. **排除冲突**: 确保项目中没有依赖冲突。特别是如果你使用了其他的 Spring Boot 或 JDBC 据源相关的组件,可能会存在版本或配置冲突。 7. **检查构建脚本语法**: 保证构建脚本中引用依赖的方式正确无误,尤其是路径分隔符和依赖属性的书写方式(例如使用 `/` 而不是 `\`)。 8. **查阅官方文档**: 查阅项目的官方文档或社区论坛,看是否有其他人遇到类似的问题及其解决方案。 9. **重新启动服务器**: 有时候,只是简单地重启应用服务器(如果是运行在本地环境的话)也可能解决问题。 如果以上步骤都试过了还是无法解决,建议提供更详细的日志信息和项目结构描述,以便更精确地定位问题所在。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值