随想录算法训练营第五十五天|583.两个字符串的删除操作、72.编辑距离

583.两个字符串的删除操作

cs 复制代码
public class Solution {
    public int MinDistance(string word1, string word2) {
        char[]w1=word1.ToCharArray();
        char[]w2=word2.ToCharArray();
        int[,]dp=new int[w1.Length+1,w2.Length+1];
        for(int i=1;i<=w1.Length;i++)
        {
            for(int j=1;j<=w2.Length;j++)
            {
                if(w1[i-1]==w2[j-1])
                {
                    dp[i,j]=dp[i-1,j-1]+1;
                }else
                dp[i,j]=Math.Max(dp[i-1,j],dp[i,j-1]);
            }
        }
        return word1.Length-dp[w1.Length,w2.Length]+word2.Length-dp[w1.Length,w2.Length];
    }
}

代码和最长公共子串一个思路,只是最后返回值要处理一下。

72.编辑距离

cs 复制代码
public class Solution {
    public int MinDistance(string word1, string word2) {
        char[]w1=word1.ToCharArray();
        char[]w2=word2.ToCharArray();
        int[,]dp=new int[w1.Length+1,w2.Length+1];
        for(int i=1;i<=w1.Length;i++)
        {
            dp[i,0]=i;
        }
        for(int j=1;j<=w2.Length;j++)
        {
            dp[0,j]=j;
        }
        for(int i=1;i<=w1.Length;i++)
        {
            for(int j=1;j<=w2.Length;j++)
            {
                if(w1[i-1]==w2[j-1])
                {
                    dp[i,j]=dp[i-1,j-1];
                }else
                dp[i,j]=Math.Min(Math.Min(dp[i-1,j-1],dp[i,j-1]),dp[i-1,j])+1;
            }
        }
        return dp[w1.Length,w2.Length];
    }
}

Word1删除一个元素就是Dp[i][j] = Dp[i - 1][j] + 1,Word2删除Dp[i][j] = Dp[i][j - 1] + 1,替换则是Dp[i][j] = dp[i - 1][j - 1] + 1。

相关推荐
Raven100861 小时前
L1G2-OpenCompass 评测书生大模型实践
算法
NAGNIP1 小时前
RAG信息检索-如何让模型找到‘对的知识’
算法
蒟蒻小袁3 小时前
力扣面试150题--实现Trie(前缀树)
leetcode·面试·c#
电院工程师3 小时前
轻量级密码算法CHAM的python实现
python·嵌入式硬件·算法·安全·密码学
大白曾是少年3 小时前
哈希表三种数据结构在leetcode中的使用情况分析
数据结构·leetcode·散列表
@老蝴9 小时前
C语言 — 通讯录模拟实现
c语言·开发语言·算法
L-ololois9 小时前
【AI】模型vs算法(以自动驾驶为例)
人工智能·算法·自动驾驶
代码写到35岁10 小时前
Jenkins自动发布C# EXE执行程序
运维·c#·jenkins
安全系统学习11 小时前
网络安全之RCE简单分析
开发语言·python·算法·安全·web安全
yutian060612 小时前
C# 支持 ToolTip 功能的控件,鼠标悬停弹提示框
开发语言·microsoft·c#