16.4 线性DP练习——【字符串转换】

2023-11-12

题目描述

小蓝拥有两个字符串S,T。他希望通过如下操作使得字符S转换为字符串T。
操作有一下三种:

  1. 删除一个字符。
  2. 插入一个字符。
  3. 将一个字符改为另一个字符。

问最少需要操作多少次才可以使得字符串S转换为字符串T。

输入描述

在这里插入图片描述

输出描述

输出一个整数表示答案。

输入输出样例

输入:

abc
aa

输出:

2



最终代码c/c++

#include<bits/stdc++.h>
using namespace std;
int dp[3005][3005],m,n;
char a[3005],b[3005];

void solve()
{
    dp[0][0]=0;
    for(int i=1;i<=m;i++)   dp[i][0]=i;
    for(int j=1;j<=n;j++)   dp[0][j]=j;
    
    for(int i=1;i<=m;i++)
        for(int j=1;j<=n;j++)  
		{
            if(a[i] == b[j])
                dp[i][j] = dp[i-1][j-1];
            else
                dp[i][j]=min(min(dp[i-1][j],dp[i][j-1]),dp[i-1][j-1])+1;
        }
}
int main()
{
    scanf("%s %s",a+1,b+1);  //a[0],b[0]不用
    m = strlen(a+1);
    n = strlen(b+1);
    solve();
    printf("%d\n",dp[m][n]);
}



过程理解

在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

16.4 线性DP练习——【字符串转换】 的相关文章

  • C/C++ 程序是在 CPU 上运行还是在内核上运行?

    我已经编程很多年了 但有一件事我一直不明白 有两种类型的编程语言 编译型语言和解释型语言 编译型语言首先需要编译成解释型语言 然后才能执行 例如 C C 需要先编译为机器语言 然后才能执行 我的问题来了 谁真正运行已编译的 C C Wind
  • MVC 中的 Blazor:组件被渲染,但 @onclick 不起作用。连接问题

    我正在尝试在 net core 3 MVC 项目中使用 Blazor 我使用了一些教程来做到这一点 例如https fizzylogic nl 2019 08 18 integrating blazor in an existing asp
  • 是否可以通过引用以基类作为参数的函数来传递派生类

    假设我们有一个抽象基类IBase使用纯虚方法 接口 然后我们推导出CFoo CFoo2来自基类 我们有一个知道如何使用 IBase 的函数 Foo IBase input 这些情况下通常的场景是这样的 IBase ptr static ca
  • 为什么不能使用initializer_list来初始化unique_ptr的向量? [复制]

    这个问题在这里已经有答案了 我想知道为什么initializer list 不能与unique ptr 一起使用 std vector
  • 如何在Qt中更快地读取数据?

    Qt读取数据库比C 慢吗 我想我错过了一些东西 为了比较阅读速度 我在 Qt 中编写了以下内容 QElapsedTimer t t start int count 0 QString cs Driver SQL Server Server
  • 使用 pthread_cond_signal 优雅地终止线程被证明是有问题的

    我需要发射一堆线程 并希望优雅地将它们拉下来 我正在尝试使用pthread cond signal pthread cond wait实现这一目标 但遇到了问题 这是我的代码 首先是thread main static void thrma
  • 使用 CMake 对 SDL 的未定义引用

    我正在使用 SDL v1 2 15 7 和 CMake 3 2 1 开发一个项目 在 h 文件中我添加了 include
  • 是否可以获取指向装箱非托管值类型的指针?

    是否可以获取指向装箱非托管值类型的指针 而无需编写对每个支持的类型进行强制转换的大型 switch 语句 就像是 object val Contains a boxed unmanaged value such as int long by
  • 在 C++ 中初始化指针

    可以在声明时将指针分配给值吗 像这样的东西 int p 1000 是的 您可以在声明时初始化指向值的指针 但是您不能这样做 int p 1000 是个地址运算符 并且您不能将其应用于常量 尽管如果可以 那会很有趣 尝试使用另一个变量 int
  • 本地主机和 request.Url.Authority

    我的应用程序通过 URL 中的公司标识符分隔用户 company1 app com company2 app com 我正在本地 PC 上进行测试 请求如下 company1 localhost com 但是 我的 request Url
  • Ajax 函数在重定向后不保存滚动位置

    正如标题所述 我编写了一个 ajax 函数 该函数应该滚动到用户在重定向之前所在的位置 我写了一个alert对于测试场景 它确实触发了 但滚动不断回到顶部 我在这里做错了什么 JavaScript ajax type GET url Adm
  • C++ 中类型信息何时向后流动?

    我刚刚看了 Stephan T Lavavej 的演讲CppCon 2018关于 类模板参数推导 在哪里某个点 https youtu be H ut6j1BYU t 941他顺便说 在 C 中 类型信息几乎永远不会向后流动 我不得不说 几
  • 验证域用户凭据

    我需要一种方法来验证 Windows 上本机 C 的用户 密码对 输入的是用户名和密码 用户可以是 DOMAIN user 格式 基本上我需要编写一个函数 如果用户 密码是有效的本地帐户 则返回 true 第1部分 如果用户 密码在给定的域
  • 如何明智地解释这个编译器警告?

    当我执行这段代码时question https stackoverflow com a 51056490 2411320 我收到这个警告 warning format d expects argument of type int but a
  • 使用 Node.js 访问用 C++ 编写的 SDK

    我有一个用 C 语言编写的 SDK 可以与我的扫描仪设备进行通信 我需要开发一个可以访问扫描仪设备的电子应用程序 我知道有很多库可用于扫描仪 但我想使用这个 SDK 因为它允许我访问设备的完整功能 而且它是由设备制造商提供的 那么 有没有什
  • C 中函数“fgets”的参数太少

    每当我编译这个错误时 我都会收到该错误 但我不知道为什么 我直接从书上抄袭这个 有人可以帮忙吗 include
  • 不兼容的指针到字符转换

    我正在编写一个程序 将卡片值写入 52 个点字符的多维数组中 该程序是一个测试数组 稍后我将其作为函数写入主程序中 在程序中 我通过以下方式初始化 for 循环计数0通过51 我用一个switch语句调制13将卡牌值分配给数组点 但是 我收
  • 如何正确地将十六进制转义添加到字符串文字中?

    当你有C语言的字符串时 你可以在里面直接添加十六进制代码 char str abcde a b c d e 0x00 char str2 abc x12 x34 a b c 0x12 0x34 0x00 这两个示例在内存中都有 6 个字节
  • 使texture2D在运行时/脚本Unity3D中可读[重复]

    这个问题在这里已经有答案了 我有一个插件 可以让我访问 Android 手机图库中的图片 这给了我一个Texture2D类型的纹理 然后我想使用 GetPixels 函数对其进行编辑 但默认情况下它未设置为可读 如何使纹理可读 以便我可以在
  • 应用非限定名称查找而不是依赖于参数的名称查找

    考虑标准 sec 3 4 1 3 中的一个示例 typedef int f namespace N struct A friend void f A operator int void g A a int i f a f is the ty

随机推荐

  • Java实现Excel转PDF的两种方法总结

    hello 你好呀 我是 一个超会写bug的程序猿 使用具将Excel转为PDF的方法有很多 在这里我给大家介绍两种常用的方法 分别应对两种不一样的使用场景 接下来我在springboot环境下给大家做一下演示 一 使用spire转化PDF
  • 【C语言】用递归法将一个整数转换成字符串。例如,输入483,应输出字符串“483”。N的位数不确定,可以是任意的整数(负数/正数)。

    程序如下 有不懂或者错误评论区留言 谢谢 include
  • 【C语言】冒泡排序

    一 算法描述 在一遍遍历的时候把最大的数放到后面 几次遍历后后面就是排序好的 经过n 1次遍历 二 冒泡排序代码 void bubble int a int n int i j t for i 1 i
  • 【ABAP系列】SAP ABAP下载带密码的Excel文件

    公众号 SAP Technical 本文作者 matinal 原文出处 http www cnblogs com SAPmatinal 原文链接 ABAP系列 SAP ABAP下载带密码的Excel文件 前言部分 大家可以关注我的公众号 公
  • upload-labs-03

    一 前言 本关涉及的是黑名单的绕过 我们先来看看什么是黑名单 黑名单 明确不让上传的文件后缀名 例如 jsp asp php html 二 环境 靶场 upload labs 工具 burpsuit 三 思路 老规矩 上传一个包含一句话木马
  • java web POI批量导出excel到zip包出错处理

    好久不见 最近在做一个导出批量excel的功能 因为不希望通过先写出单个excel到本地 然后再压缩成zip后导出 因此随手百度 找到倒流进ZipOutputStream 然后变成zip导出 demo代码如下 RequestMapping
  • 驱动模块Makefile解析

    作者 王劲南 华清远见嵌入式学院讲师 先看一下代码 ifeq KERNELRELEASE KERNELDIR home linux linux 2 6 22 6 PWD shell pwd modules MAKE C KERNELDIR
  • 读书笔记:《人工智能》

    读书笔记 摘自 人工智能 作者 李开复 王咏刚 第一章 人工智能来了 人工智能已经来了 而且它就在我们身边 几乎无处不在 人类 你好 不管我们是碳基人类还是硅基机器人 都没有本质的区别 我们中的每一员都应获得应有的尊重 每当前沿科技取得重大
  • 通过木马程序rootkit隐蔽行踪-创建root用户都删除不了的木马文件

    前沿 实战1 通过rootkit留后门 1 通过rootkit提权 2 通过rootkit隐藏木马进程号 3 通过rootkit隐藏木马文件 实战2 创建一个root用户 都删除不了的木马文件 实验环境 服务端 63 cn IP 192 1
  • 零代码实现接口自动化测试-RF框架实践

    robotframework是一款关键字自动化测试框架 可能做各种类型的自动化测试 本文介绍通过 robotframework 来实现接口测试 安装接口请求的第三方库 pip install robotframework requests
  • Unity入门03——Unity脚本

    1 脚本基本规则 1 设置编程用工具 2 基本规则 1 创建规则 不在VS中创建脚本了 可以放在Assets文件夹下的任何位置 建议同一文件夹管理 类名和文件名必须一致 不然不能挂载 因为反射机制创建对象 会通过文件名去找Type 建议不要
  • 晶圆价格计算

    昨天和一个朋友聊天 朋友提及到如果自己做芯片 成本大约为2 3元人民币 今天正好朋友圈有朋友转发此类文章 https mp weixin qq com s biz MzA4ODMwNTMxNg mid 400134208 idx 1 sn
  • download-git-repo报错128

    参考链接https segmentfault com q 1010000012493731
  • OC消息机制

    目录 1 OC消息机制 2 OC消息发送 3 OC动态方法解析 4 OC消息转发 1 OC消息机制 OC对象调用方法在编译阶段不知道具体的方法在哪里 是在运行的过程中 向对象发送消息 通过对象得到函数地址 调用函数 如果没有找到 则抛出异常
  • 在geany编辑器中编写中文注释

    在代码的开头加入 coding utf 8 这个是解析文件使用的是 utf 8 编码 完整支持多个语种 例如 coding utf 8 将整数使用str 进行字符串转换 age 23 message Happy str age rd Bir
  • 【MATLAB第47期】基于MATLAB的多卷积层的卷积神经网络MCNN分类预测模型,含交叉验证,可自定义层数

    MATLAB第47期 基于MATLAB的多卷积层的卷积神经网络MCNN分类预测模型 含交叉验证 可自定义层数 一 展示效果 依次对比卷积层数为1 2 3时的分类预测结果 可得出 随着卷积层数量增加 训练集 测试集正确率基本上得到改进 1 一
  • vue报错:Failed to resolve directive: modle

    问题原因 我把model写成了modle
  • SQL利用存储过程一次插入多条数据

    创建存储过程 可自行扩展ID不存在时为新增 否为修改 create PROCEDURE dbo p Company Insert CompanyCollection CompanyTableType READONLY AS INSERT I
  • linux shell字符串截取总结

    一 字符串变量的截取操作 对字符串变量的截取操作一般都是通过 操作符 的方式进行 如下 1 从指定位置 index 截取固定长度 格式 string start length 其中 string 是要截取的字符串 start 是起始位置 下
  • 16.4 线性DP练习——【字符串转换】

    文章目录 题目描述 输入描述 输出描述 输入输出样例 最终代码c c 过程理解 题目描述 小蓝拥有两个字符串S T 他希望通过如下操作使得字符S转换为字符串T 操作有一下三种 删除一个字符 插入一个字符 将一个字符改为另一个字符 问最少需要