每日OJ_牛客HJ52计算字符串的编辑距离(dp)

news2024/9/21 14:47:00

目录

牛客HJ52计算字符串的编辑距离(dp)

解析代码


牛客HJ52计算字符串的编辑距离(dp)

计算字符串的编辑距离_牛客题霸_牛客网


解析代码

        计算字符串的编辑距离(也称为Levenshtein距离)是一个经典的动态规划问题。编辑距离是指将一个字符串转换成另一个字符串所需的最少编辑操作次数,其中编辑操作包括插入、删除和替换一个字符。子状态:word1的前1,2,3,...m个字符转换成word2的前1,2,3,...n 个字符需要的编辑距离。

#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main()
{
    string str1 = "", str2 = "";
    cin >> str1 >> str2;
    int n1 = str1.size(), n2 = str2.size();
    // if(n1 == 0 || n2 == 0)
    // {
    //     cout << max(n1, n2);
    //     return 0;
    // }

    vector<vector<int>> dp(n1 + 1, vector<int>(n2 + 1));
    for(int i = 1; i <= n1; ++i)
    {
        dp[i][0] = i;
    }
    for(int j = 1; j <= n2; ++j)
    {
        dp[0][j] = j;
    }

    for(int i = 1; i <= n1; ++i)
    {
        for(int j = 1; j <= n2; ++j)
        {
            if(str1[i - 1] == str2[j - 1])
                dp[i][j] = dp[i - 1][j - 1];
            else
                dp[i][j] = 1 + min(dp[i - 1][j - 1], min(dp[i - 1][j], dp[i][j - 1]));
        }
    }
    cout << dp[n1][n2] << endl;
    return 0;
}

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

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

相关文章

java SE--Lambda表达式和Stream流

一.Lambda表达式 1.Lambda表达式的简介 Lambda表达式是 jdk1.8 引入的一个新特性&#xff0c;它是函数式编程在Java中的一种体现。也是jdk1.8最值得学习的新特性&#xff0c;另一个就是流式编程。 1.Lambda表达式的引入简化了匿名内部类的语法&#xff0c;让代码更加简洁明了…

4.3.2 图像去畸变

4.3.2 图像去畸变 参考教程&#xff1a; 相机标定&#xff08;4&#xff09; 矫正畸变 undistort()和initUndistortRectifyMap()-CSDN博客 学习笔记 – opencv图像去畸变_opencv 畸变参数-CSDN博客 下面我们将演示图像去畸变的过程&#xff0c;在OpenCV中提供了一个函数cv:…

买新能源怕自燃?法院这判决我举双手赞成

文 | AUTO芯球 作者 | 雷慢 大快人心&#xff01;终于有法院为新能源车主做主了&#xff0c; 你们看啊&#xff0c;某新能源车主开车半路自燃&#xff0c;报了保险&#xff0c; 保险公司赔了18万&#xff0c;转身又去告汽车公司&#xff0c; 汽车公司又被法院判决赔偿保险…

【软件逆向】第2课,软件逆向安全工程师之区分应用32位和64位,每天5分钟学习逆向吧!

目标学习使用StudyPE区分应用 在软件逆向中区分应用类型是关键性的一部分 &#xff0c;只有区分类型后才能选择对应工具进行后续处理。 1.打开StudyPE工具。 2.将我们需要逆向的软件&#xff0c;拖拽到StudyPE中&#xff0c;查看应用信息。 以上用一款视觉AI软件举例&#…

UCOSIII信号量详解

目录 ​编辑 前言 一、信号量的类型 二、信号量的使用方法 2.1创建信号量 2.2请求信号量&#xff1a; 2.3释放信号量&#xff1a; 三、信号量的作用 四、注意事项 五、信号量的API函数 六、代码实现 6.1 创建信号量 6.2 使用信号量 前言 UCOSIII信号量是UCOSIII操作…

【Vue3】路由基础

【Vue3】路由基础 背景简介开发环境开发步骤及源码总结 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努力学习奋斗的日子。本…

如何用Python求素数之和

计算两个正整数x&#xff0c;y(x<y&#xff0c;包括x&#xff0c;y)素数和。首先通过isPrime函数来判断一个数是否为素数&#xff0c;再使用primeSum函数来返回素数和。 以下为源码&#xff1a; def isPrime(n) :for i in range(2,n):if n % i 0:return 0breakelse:return…

在VB.net中,SortedList有什么方法与属性

标题 在VB.net中&#xff0c;SortedList有什么方法与属性 正文 在VB.NET中&#xff0c;SortedList 类是一个基于键值对的集合&#xff0c;它允许元素按照键的顺序进行排序&#xff0c;并可以通过键或索引来访问元素。SortedList 类是 System.Collections.Generic 命名空间中的一…

物流快递外卖管理平台系统-计算机毕设Java|springboot实战项目

&#x1f34a;作者&#xff1a;计算机毕设残哥 &#x1f34a;简介&#xff1a;毕业后就一直专业从事计算机软件程序开发&#xff0c;至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长&#xff1a;按照需求定制化开发项目、 源…

python绘制蕨菜叶分形

一花一叶一世界,一草一木一浮生. 使用了四个不同的线性变换&#xff0c;根据概率选择其中一个变换并更新 x 和 y 坐标。然后将生成的绿色点绘制出来&#xff0c;形成一片蕨菜叶。 import numpy as np import matplotlib.pyplot as pltdef fern_fractal(num_points):# 初始化坐…

手把手教你接口性能测试之JMeter性能测试篇

一、Jmeter 简介 Jmeter是由Apache公司开发的一个纯Java开源项目&#xff0c;即可以用于做接口测试也可以用于做性能测试&#xff0c;具备高移植性和扩展性&#xff0c;可以实现跨平台运行&#xff0c;可以实现分布式负载。 采用多线程&#xff0c;允许通过多个线程并发取样或…

【c++】 C语言的输入与输出C++的IO流STL空间配置器

主页&#xff1a;醋溜马桶圈-CSDN博客 专栏&#xff1a;c_醋溜马桶圈的博客-CSDN博客 gitee&#xff1a;mnxcc (mnxcc) - Gitee.com 目录 1.C语言的输入与输出 2.流是什么 3.CIO流 3.1 C标准IO流 3.2 C文件IO流 4.stringstream的简单介绍 5.什么是空间配置器 6.为什么需要…

RAG系统优化思路

图片来源&#xff1a;https://huggingface.co/learn/cookbook/zh-CN/rag_evaluation 该图展示了可以从哪些部分去优化RAG。 先摘录一些比较好的思路&#xff1a; https://zhuanlan.zhihu.com/p/681421145 https://www.zhihu.com/question/643138720/answer/3495870046 http…

Spring-data-redis

一、spring-data-redis 介绍 spring-data-jpa spring-data-jdbc spring-data-redis 说明&#xff1a; 在 SpringBoot2.x 之后&#xff0c;原来使用的jedis 被替换为了 lettuce jedis : 采用的直连&#xff0c;多个线程操作的话&#xff0c;是不安全的&#xff0c;如果想要…

vue前后端交互学习问题记录2

1.在使用定时任务时报如下错误&#xff1a;No SecurityManager accessible to the calling code, either bound to the org.apache.shiro.util.ThreadContext or as a vm static singleton. This is an invalid application configuration. 看报错是ThreadContext未绑定Secur…

Java调用Python的简单运用

这里提供两种调用方法&#xff1a; 1、通过Jython来实现Java调用Python (目前只支持Python2) 2、通过ProcessBuilder来实现Java执行Python脚本&#xff08;既支持Python2也支持Python3&#xff09; 通过Jython来实现Java调用Python Jython目前只支持Python2 一、准备好Pytho…

如何高效记录并整理编程学习笔记

目录 1.概述 1.1. 选择合适的工具 1.2. 分类整理 1.3. 制定标准格式 1.4. 定期复习和更新 1.5. 利用图形和视觉辅助 1.6. 记录问题和解决过程 1.7. 使用版本控制 1.8. 与他人分享和讨论 2.笔记工具选择 2.1. 印象笔记 2.2. 语雀 2.3. 有道云笔记 2.4. 腾讯文档 …

基于Spring Boot的企业员工薪酬关系系统的设计

TOC springboot229基于Spring Boot的企业员工薪酬关系系统的设计 第一章 课题背景及研究内容 1.1 课题背景 信息数据从传统到当代&#xff0c;是一直在变革当中&#xff0c;突如其来的互联网让传统的信息管理看到了革命性的曙光&#xff0c;因为传统信息管理从时效性&#…

Spring好坑!为什么代理对象的属性没有值?

先看代码&#xff1a; Service Transactional public class ZhouyuService {private String name "zhouyu";public final void test() {System.out.println(name);} }关键点&#xff1a; 加了Transactional&#xff0c;所以ZhouyuService会生成代理对象作为Bean对…

HAProxy理论+实验

目录 一、基于cookie的会话保持 1、配置选项 2、配置示例 3、验证cookie信息 二、IP透传 1、layer4 与 layer7 &#xff08;1&#xff09;四层:IPPORT转发 &#xff08;2&#xff09;七层:协议内容交换 三、haproxy的ACL应用 1、ACL配置选项 &#xff08;1&#xf…