当前位置: 首页 > article >正文

OJ练习第94题——编辑距离

编辑距离

力扣链接:72. 编辑距离

题目描述

给你两个单词 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’)

Java代码

class Solution {
    public int minDistance(String word1, String word2) {
        int len1 = word1.length(), len2 = word2.length();
        int[][] dp = new int[len1 + 1][len2 + 1];
        for (int i = 0; i <= len1; i++) {
            dp[i][0] = i;
        }
        for (int j = 0; j <= len2; j++) {
            dp[0][j] = j;
        }
        for (int i = 1; i <= len1; i++) {
            for (int j = 1; j <= len2; j++) {
                if (word1.charAt(i - 1) == word2.charAt(j - 1)) {
                    dp[i][j] = dp[i - 1][j - 1];
                } else {
                    dp[i][j] = 1 + Math.min(Math.min(dp[i - 1][j], dp[i][j - 1]), dp[i - 1][j - 1]);
                }
            }
        }
        return dp[len1][len2];
    }
}

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/edit-distance
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


http://www.kler.cn/a/18199.html

相关文章:

  • 人工智能的前沿研究方向与未来发展趋势
  • PaaS云原生:分布式集群中如何构建自动化压测工具
  • R语言机器学习与临床预测模型69--机器学习模型解释利器:SHAP
  • Vue自定义指令详解——以若依框架中封装指令为例分析
  • [vulnhub] DarkHole: 1
  • 基于Python的膳食健康系统
  • 强烈推荐:一款中文AI问答、创作、绘画工具
  • 石油化工企业防雷工程应用解决方案
  • 基于Vue的个人网站的设计与实现
  • 查看NVIDIA GPU占用率方法
  • win10常用操作集合 - vhd/wsl/等等
  • AUTOSAR - CANTP - 学习一 :理论基础
  • 中台产品经理01:中台落地工具MSS模型
  • 社交“搭子”火了!小红书数据分析,品牌正用“陪伴”种草?
  • 用科技创造未来!流辰信息技术助您实现高效办公
  • apple pencil必须要买吗?性价比平替电容笔排行榜
  • SAP BusinessObjects BI crack
  • 精致女孩必备的6款APP,内外兼修,提升气质
  • 平衡二叉树
  • C++知识点 -- 特殊类设计
  • 【Java】面试常问知识点(Java基础—2)
  • Word下划线怎么打?速速get这5个实用方法!
  • 将webrtc的音频模式改为共享模式
  • SEO优化新手必须掌握的10个技巧和工具
  • 点成分享丨细胞培养三步骤——复苏、传代、冻存
  • Java并发编程实践学习笔记(三)——共享对象之可见性