【将字符串变为空的编辑距离】
题目描述
求由s串变成t串的编辑距离
在s串的开头/末尾添加一个字符,花费p
在s串的开头/末尾添加一个s串的子串,花费q
每次作都是基于当前的s串
s串初始为空
分析
等价于将一个字符串变为空串的过程
第一层按照长度遍历(如果按照下标i,j遍历,在考虑左子串的时候,会用dp[r+1,j] + q更新dp[i][j],r+1 >=i, 会出现用未知值算未知值的情况)
考虑每一种状态转移:左子串,右子串,左开头,右开头
代码
# 求由s串变成t串的编辑距离
# 在s串的开头/末尾添加一个字符,花费p
# 在s串的开头/末尾添加一个s串的子串,花费q
# 每次作都是基于当前的s串
# s串初始为空# dp[i][j] 代表 从下标i的字符开始,到下标j的字符结束的子串 变为空需要的最小花费# 按照长度,考虑下标的边界情况,
# 转移时不能直接复制,取min
# 相同的数据类型进行比较def ans(s:str, p:int, q:int):n = len(s)dp = [[1e9]*(n+1) for i in range(n+1)] # 初始化最大dp[0][0] = pfor lenth in range(1, n+1):for i in range(n-lenth+1):j = i+lenth-1if i == j:dp[i][j] = pelse: # 右边子串for l in range(i,j+1):sub_s = s[l:j+1]if sub_s in s[i:l]:dp[i][j] = min( dp[i][j], dp[i,l-1] + q ) # 左边子串for r in range(i,j+1):sub_s = s[i:r+1]if sub_s in s[r+1:j+1]:dp[i][j] = min( dp[i][j], dp[r+1,j] + q) # 取min# 删一个字符dp[i][j] = min(dp[i][j], dp[i][j-1]+p, dp[i-1][j]+p) return dp[0][n-1]
相关文章:
【将字符串变为空的编辑距离】
题目描述 求由s串变成t串的编辑距离 在s串的开头/末尾添加一个字符,花费p 在s串的开头/末尾添加一个s串的子串,花费q 每次作都是基于当前的s串 s串初始为空 分析 等价于将一个字符串变为空串的过程 第一层按照长度遍历(如果按照下标i,j遍…...
卡特兰数的推理
卡特兰数(Catalan number),又称卡塔兰数、明安图数,是组合数学中一种常出现于各种计数问题中的数列。它以比利时数学家欧仁查理卡特兰的名字命名,但值得注意的是,这一数列的首次发现可以追溯到1730年&#…...
高精度治具加工的重要性和优势
在现代工业制造中,高精度治具加工扮演着举足轻重的角色。它不仅关乎产品制造的精度与质量,还直接影响到生产效率和成本控制。因此,时利和将深入探讨高精度治具加工的重要性和优势,对于提升工业制造水平具有重要意义。 高精度治具加…...
新版IDEA提示@Autowired不建议字段注入
随着项目的复杂度的增加,我们通常会在一个业务类中注入其他过多的业务类。从而使当前的业务层扩充成一个大而全的功能模块。那么就容易出现一下问题 字段注入会让依赖关系变得不那么明显,因为你无法通过构造函数看到所有的依赖项。使用构造函数时&#…...
adb的安装和使用 以及安装Frida 16.0.10+雷电模拟器
.NET兼职社区 .NET兼职社区 .NET兼职社区 1.下载adb Windows版本:https://dl.google.com/android/repository/platform-tools-latest-windows.zip 2.配置adb环境变量 按键windowsr打开运行,输入sysdm.cpl,回车。 高级》环境变量》系统变量》…...
解决移动端1px 边框优化的8个方法
前言 您是否注意到 1px 边框在移动设备上有时会显得比预期的要粗?这种不一致源于移动屏幕的像素密度不同。 在 Web 开发中,我们使用 CSS 来设置页面样式。但是,CSS 中的 1px 并不总是转换为设备上的物理 1px。这种差异就是我们的“1px 边框…...
频带宽度固定,如何突破数据速率的瓶颈?
目录 目录 引言 信道 频带宽度 信噪比 信噪比的重要性 影响信噪比的因素 码元 码元的特点: 码元与比特的关系: 码元的作用: 码元的类型: Question 类比解释: 技术解释: 引言 在现代通信系统中…...
Linux网络编程 --- 高级IO
前言 IO Input&&Output read && write 1、在应用层read && write的时候,本质把数据从用户层写给OS --- 本质就是拷贝函数 2、IO 等待 拷贝。 等的是:要进行拷贝,必须先判断读写事件成立。读写事件缓冲区空间满…...
Python中给定一个数组a = [2,3,9,1,0],找出其中最大的一个数,并打印出来 求解?
Python有内置的max函数可以取最大值: max([2,3,9,1,0])也可以使用sorted先排序,再索引取出最大值: sorted([2,3,9,1,0])[-1]如果不用内置函数,自己排序算法来找出最大值,也有很多选择。 比如冒泡排序、循环排序、交…...
系统优化工具 | PC Cleaner v9.7.0.3 绿色版
PC Cleaner是一款功能强大的电脑清理和优化工具,旨在通过清理系统垃圾文件、解除恶意软件和优化系统性能来提高计算机的运行效率。该软件提供了多种功能,可以帮助用户维护和提升计算机的整体表现。 PC Cleaner 支持 Windows 7 及以上操作系统࿰…...
JavaSE、JavaEE 与 JavaWeb 的详解与区别
一、JavaSE(Java Standard Edition)——标准版 1. 什么是JavaSE JavaSE,全称Java Standard Edition,译为Java标准版,是Java平台的基础,也是开发者最常使用的Java版本。JavaSE包含了编程中最基础的核心库,如Java的基本语法、面向对象编程、集合框架、多线程、网络编程、…...
HCIE和CCIE,哪个含金量更高点?
在现在内卷的大环境下,技术岗可谓人人自危,也因此各种认证的重视程度直线升高。 特别是华为认证的HCIE和思科认证的CCIE,它们都代表着网络技术领域的顶尖水平。 但面对这两个高含金量的认证,不得不让人问出这个问题:同…...
2024.9.14 Python与图像处理新国大EE5731课程大作业,马尔可夫随机场和二值图割,校正立体图像的深度
1.马尔科夫随机场和二值图割 马尔可夫随机场(MRF, Markov Random Field): MRF 是一种用来描述图像像素之间空间关系的概率模型。它假设图像中的像素不仅取决于自身的值,还与周围像素有关。这种模型经常用于图像分割、去噪等任务。…...
工业大模型市场图谱:53个工业大模型全面梳理
工业场景要求严谨、容错率低,核心业务场景对模型准确率的要求达到95%以上、对幻觉的容忍率为0,因此通用基础大模型的工业知识往往不足以满足工业场景的应用需求。 根据沙丘智库发布的《2024年中国工业大模型应用跟踪报告》,工业大模型是指在…...
【代码随想录训练营第42期 Day58打卡 - 图论Part8 - 拓扑排序
目录 一、拓扑排序介绍 定义 特点 实现方法(2种) 应用 二、题目与题解 题目:卡码网 117. 软件构建 题目链接 题解:拓扑排序 - Kahn算法(BFS) 三、小结 一、拓扑排序介绍 对于拓扑排序,…...
JVM内部结构解析
Java虚拟机(JVM)是Java程序运行的基础环境,它为Java程序提供了一个与平台无关的执行环境。了解JVM的内部结构对于Java开发者来说至关重要,因为它可以帮助开发者优化程序性能,理解垃圾回收机制,以及诊断和解…...
誉龙视音频综合管理平台 RelMedia/FindById SQL注入漏洞复现
0x01 产品简介 誉龙视音频综合管理平台是深圳誉龙数字技术有限公司基于多年的技术沉淀和项目经验,自主研发的集视音频记录、传输、管理于一体的综合解决方案。该平台支持国产化操作系统和Windows操作系统,能够接入多种类型的记录仪,实现高清实时图传、双向语音对讲、AI应用…...
MATLAB系列01:MATLAB介绍
MATLAB系列01:MATLAB介绍 1. MATLAB介绍1.1 MATLAB的优点1.2 MATLAB的缺点1.3 MATLAB的开发环境1.3.1 获取帮助的方法:1.3.2 一些重要的命令:1.3.3 MATLAB搜索路径 1. MATLAB介绍 MATLAB(矩阵实验室的简称)是一种专业的计算机程序࿰…...
GEE 按范围导出 Sentinel-2 卫星影像
Sentinel-2 卫星提供了高分辨率的地表覆盖图像,广泛应用于农业监测、城市规划、环境变化分析等诸多领域。在 Google Earth Engine (GEE) 中,我们能够按特定地理范围导出这些影像,以支持更深入的研究和分析。 使用方法 💻 GEE 提供…...
队列OJ题——用队列实现栈
文章目录 一、题目链接二、解题思路三、解题代码 一、题目链接 用队列实现栈 二、解题思路 三、解题代码 class MyStack {public Queue<Integer> queue1;public Queue<Integer> queue2;public int usedSize;public MyStack() {queue1 new LinkedList<>()…...
LobeChat新手入门指南:从零开始,打造专属智能助手
LobeChat新手入门指南:从零开始,打造专属智能助手 1. 为什么选择LobeChat? 在当今数字化时代,智能对话系统已经成为提升工作效率和生活品质的重要工具。LobeChat作为一款开源的高性能聊天机器人框架,凭借其易用性和强…...
手把手教你用Qwen2.5-7B-Instruct:基于vllm+chainlit快速搭建智能助手
手把手教你用Qwen2.5-7B-Instruct:基于vllmchainlit快速搭建智能助手 想快速拥有一个属于自己的、功能强大的智能对话助手吗?今天,我们就来一起动手,基于Qwen2.5-7B-Instruct这个优秀的开源大模型,配合vLLM的高效推理…...
论文写作利器:如何用VSCode和LaTeX打造高效写作环境(含最新配置代码)
论文写作利器:如何用VSCode和LaTeX打造高效写作环境(含最新配置代码) 对于学术研究者而言,论文写作不仅是思想的表达,更是效率的较量。传统文字处理软件在复杂公式排版、参考文献管理上的局限性,常常让写作…...
《奇迹 MU:荣耀出征》荣耀 12 区:职业选择 + 开荒路线 + 搬砖技巧全攻略!
作为正版奇迹 MU 授权的复古魔幻手游,《奇迹 MU:荣耀出征》的核心魅力不仅在于经典职业的热血回归与自由交易的搬砖乐趣,更在于从新手开荒到高阶攻坚的完整成长链路、全阶段高爆地图的刷宝惊喜、世界 BOSS 的全服混战与战盟攻城的巅峰对决。相…...
自定义默认提示词:PandaWiki 问答 “一键贴合业务”,企业降本增效新方案
深耕企业数字化与知识管理 7 年,服务过数百家中大型企业,发现企业知识库普遍存在三大核心痛点:AI 问答泛化、风格混乱、效率低下、人力成本高。PandaWiki 的自定义默认提示词功能,搭配多平台客服 开源可控,为企业提供…...
Turbo实战:如何用任务编排优化你的Monorepo构建流程?以pnpm+vitepress为例
Turbo实战:如何用任务编排优化你的Monorepo构建流程?以pnpmvitepress为例 在当今前端工程化领域,Monorepo已成为管理复杂项目的标配方案。但当项目规模增长到一定程度时,传统的构建方式往往会面临效率瓶颈——每次全量构建耗时漫长…...
从零构建MAX30102心率血氧监测系统
1. MAX30102传感器基础认知 第一次接触MAX30102时,我盯着这个5mm3mm的小芯片看了半天——很难想象这么小的器件能同时测量心率和血氧。它本质上是个光电生物传感器,工作原理就像用手电筒照手指:内置的红光(660nm)和红外光(880nm)LED穿过皮肤组…...
Z-Image-GGUF模型解析:C语言视角下的文件读写与GGUF格式处理
Z-Image-GGUF模型解析:C语言视角下的文件读写与GGUF格式处理 你是不是也好奇,那些动辄几十GB的大模型文件,计算机到底是怎么“看懂”并加载它们的?今天我们不聊高层的API调用,而是拿起C语言这把“手术刀”,…...
[具身智能-125]:RQT(Robot Qt),一个可以全方位监控ROS2系统内部节点工作状态的可视化超级终端!!!
如果说 RViz2 是机器人的“眼睛”(看 3D 世界),那么 RQT 就是机器人的“听诊器”和“控制台”。它基于 Qt 框架开发,采用插件化架构,让你能在一个窗口里完成对 ROS2 系统内部状态的全方位监控与调试。为了让你更好地利…...
Obsidian-i18n:破解插件语言壁垒的无缝本地化方案——让中文用户零门槛掌控千款插件
Obsidian-i18n:破解插件语言壁垒的无缝本地化方案——让中文用户零门槛掌控千款插件 【免费下载链接】obsidian-i18n 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-i18n 问题诊断:插件语言障碍如何制约Obsidian用户体验? …...
