leetcode 712.两个字符串的最小ASCII删除和

思路:LCS,dp

其实就是把dp的状态信息变了一下,但是本质上的状态转移其实是没有很大的变动,既然是让我们删除其他不一样的字符,那么保留下来的肯定就是两个字符串的最长公共子序列了。这样的我们就可以设状态方程为最长公共子序列那种状态转移方程了。

这里的含义就变成了最小ASCII删除和。

当我们的s1[i]==s2[j]的时候,是不用发生任何变化的,直接把上一个状态转移过来就行;

当s1[i]!=s2[j]的时候,我们需要考虑两种情况了:第一种就是删除第一个s1字符串的当前字符,和第二种就是删除s2字符串的我当前字符,我们需要比较一下这两个字符串的删除操作结束之后,最小的删除和是哪一个,我们就选哪一个,不要忘记我们需要把这个当前字符串的ASCII值加到上一个状态上然后再进行比较。

注意:我们在刚开始的时候需要进行初始化,我们需要根据dp的状态转移信息确定怎么初始化。

例如,当s1的长度为0的时候,我们遍历s2字符串的时候,其实就是把s2字符串全部删除,状态存储就用前缀和的思想进行转移就行了。s2为0的时候,s1是同样的操作。

dp[0][0]是一定为0的,因为这个时候没有任何字符串可以删除。

class Solution {
public:int minimumDeleteSum(string s1, string s2) {vector<vector<int>>dp(s1.size()+1,vector<int>(s2.size()+1,0));int m=s1.size();int n=s2.size();for(int i=1;i<=n;i++){dp[0][i]=dp[0][i-1]+s2[i-1];}for(int i=1;i<=m;i++){dp[i][0]=dp[i-1][0]+s1[i-1];}for(int i=1;i<=m;i++){for(int j=1;j<=n;j++){if(s1[i-1]==s2[j-1]){dp[i][j]=dp[i-1][j-1];}else{dp[i][j]=min(dp[i-1][j]+s1[i-1],dp[i][j-1]+s2[j-1]);}}}return dp[m][n];}
};

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

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

相关文章

k8s笔记——GVK是什么

文章目录 k8s的GVK是什么查看资源的GVK查看pod查看service查看Deployment查看NameSpace查看Node 参考资料 k8s的GVK是什么 在 Kubernetes 中&#xff0c;GVK 是指 Group、Version 和 Kind 三个字段&#xff0c;用于唯一标识 Kubernetes 资源对象。 Group 指的是 Kubernetes A…

如何批量结构化分汇多工作表sheet?

目录 一、如遇合并表格&#xff0c;注意结构化二、确认主键&#xff0c;合并所有文件数据三、sheet2同理四、案例总结 如果遇到这样情形&#xff0c;多文件夹多文件&#xff0c;多工作表的分汇场景&#xff1b;可以参考以下方法解决。 一、如遇合并表格&#xff0c;注意结构…

脑机接口:是现代医学的外挂,更是瘫痪病人的豪赌

5 月 17 日&#xff0c;马斯克公开表示&#xff0c;继今年年初首次成功将大脑芯片植入患者大脑后&#xff0c;Neuralink 正在寻找第二位受试者接受这项手术。 5 月 20 日&#xff0c;美国食品药品监督管理局 (FDA) 批准了马斯克的 Neuralink 公司为第二位患者植入脑芯片&#…

Python图形界面(GUI)Tkinter笔记(十四):Entry与Button的碰撞(1)

用功能按钮(Button)、单行文本输入框(Entry)、文本框内容读取(get)实现一个极简易的加法运算,及与其他控件的交互,提高体验,主要体现其人机交互的意义。因为Entry()文本输入框没有限制输入内容属性的参数,它是把所有的输入都视作它特有的一个类属性,所以用get()方法读取出…

若依新增页面,在左侧显示菜单栏的页面,可点击

选择指定的某个目录下 菜单名称&#xff0c;路由地址&#xff0c;组件路径这几个是必填的&#xff0c;其他的暂时就不用管了。 菜单名称&#xff1a;就是显示到左侧目录中的名称。 路由地址&#xff1a;自定义&#xff0c;一般写页面名称就可以。 组件路径&#xff1a;根据前端…

PDF打印技巧:如何跳过不需要的页面?如何关闭打印权限?

作为打工人&#xff0c;经常需要打印各种文档&#xff0c;比如PDF文件。今天分享一下PDF文件的两个打印技巧&#xff0c;如果你还不知道&#xff0c;就一起来看看吧&#xff01; 技巧1&#xff1a;打印PDF如何跳过不需要的页面 有时候&#xff0c;一个PDF文件有很多页&#xf…

基于GIS地理信息技术的智慧巡检平台建设方案(Word原件)

传统的巡检采取人工记录的方式&#xff0c;该工作模式在生产中存在很大弊端&#xff0c;可能造成巡检不到位、操作失误、观察不仔细、历史问题难以追溯等现象&#xff0c;使得巡检数据不准确&#xff0c;设备故障隐患得不到及时发现和处理。因此建立一套完善的巡检管理系统是企…

DiffIR论文阅读笔记

ICCV2023的一篇用diffusion模型做Image Restoration的论文&#xff0c;一作是清华的教授&#xff0c;还在NIPS2023上一作发表了Hierarchical Integration Diffusion Model for Realistic Image Deblurring&#xff0c;作者里甚至有Luc Van Gool大佬。模型分三个部分&#xff0c…

ChatGPT实现法语口语练习APP

使用ChatGPT实现一个法语口语练习APP可以提供一个强大的工具&#xff0c;帮助学习者提高他们的口语能力。以下是一个详细的实现流程&#xff0c;包括需求分析、技术选型、开发、测试和部署。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合…

VUE3 学习笔记(7):如何简单的理解VUE 组件,并手把手实现一个嵌套组件

基本概念 VUE 最大的特点就是组件化&#xff0c;理解组件化可视为积木模块&#xff0c;其特点就是增加了复用性。把一个个.vue文件就是组件&#xff08;又作SFC&#xff09;&#xff0c;组件的组合就是一个功能页。 组成部分说明 <!--内容控制&#xff08;必要&#xff09;…

Ubuntu 离线下载安装 Tmux(亲测有效)

昨晚跑NER模型中断了&#xff0c;今天就考虑安装下Tmux&#xff0c;但是一直安装不上&#xff0c;在尝试了好几次之后&#xff0c;终于不报错了&#xff01;&#xff01;特记录一下下载安装过程。&#xff08;我这里是离线下载安装的&#xff09; 1. 下载安装包 tmux wget ht…

微信小程序上架,AI类目审核(AI问答、AI绘画、AI换脸)

小程序对于生成式AI类目的产品上架审核较为严格&#xff0c;这也是近两年新增了几个类目&#xff0c;一旦小程序中涉及生成式AI相关的内容&#xff0c;如果你选择相应类目&#xff0c;但审核被划归为这一类&#xff0c;都需要准备此类目的审核&#xff0c;才能正常上架。 如果…

【杂记-浅谈DDos攻击、浅析SYN Flood攻击、Dos及DDos攻击区别】

一、DDos Distributed Denial of Service 分布式拒绝服务攻击 什么是DDos攻击 DDoS攻击是一种常见的网络攻击形&#xff0c;攻击者利用恶意程序对一个或多个目标发起攻击&#xff0c;企图通过大规模互联网流量耗尽攻击目标的网络资源&#xff0c;使目标系统无法进行网络连接、…

MT3049 区间按位与

思路&#xff1a; 使用ST表。ST表模板可参考MT3024 maxmin 注意点&#xff1a;此题范围较大&#xff0c;所以要避免超时。 ①使用 ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); 加快输入输出速度。 ②换行使用\n而不是endl 代码&#xff1a; 1.暴力6/8 #…

YOLOv10最详细全面讲解2- 目标检测-环境搭建、训练自己的数据集

YOLOv10没想到出来的如此之快&#xff0c;作为一名YOLO的爱好者&#xff0c;以YOLOv5和YOLOv8的经验&#xff0c;打算出一套从数据集装备->环境配置->训练->验证->目标追踪全系列教程。请大家多多点赞和收藏&#xff01;&#xff01;&#xff01; 系列文章&#xf…

睿联技术对亚马逊既依赖又竞争:递表前大额分红,资金充裕又补流?

《港湾商业观察》施子夫 王璐 今年3月29日&#xff0c;冲刺创业板IPO的深圳市睿联技术股份有限公司&#xff08;以下简称&#xff0c;睿联技术&#xff09;提交了注册&#xff0c;不出意外的话&#xff0c;公司离挂牌上市已经近在咫尺。 然而&#xff0c;在目前资本市场尤其…

asammdf 运行报错 “ldf is not supported”导致打不开页面解决办法

asammdf简介 asammdf 是一个用于处理和分析测量数据格式&#xff08;MDF&#xff09;文件的 Python 库。MDF 文件通常用于汽车行业&#xff0c;记录车辆中各种传感器和控制单元的数据。asammdf 提供了读取、写入和操作这些文件的工具&#xff0c;能够高效地处理大量数据。 as…

二叉树——基础知识详解

前言&#xff1a; 经过前面的学习&#xff0c;我们接下来要开始二叉树的学习&#xff0c;因二叉树有难度&#xff0c;为了方便讲解以及各位的理解&#xff0c;本节知识会分成不同的小节进行学习&#xff0c;在本阶段只学习初阶的二叉树&#xff08;堆&#xff0c;二叉数基本知识…

基于FMEA保证汽车电控系统的可靠性

随着汽车技术的飞速发展&#xff0c;电控系统已成为现代汽车的“大脑”&#xff0c;掌控着车辆的方方面面。然而&#xff0c;这一复杂的系统也面临着诸多潜在失效风险&#xff0c;如何确保汽车电控系统的可靠性&#xff0c;成为汽车制造业亟待解决的问题。幸运的是&#xff0c;…

【Unity资源】Unity学习资源汇总

【中文网站】 1. Unity官方中文网站 (https://learn.u3d.cn) - [推荐] 特点&#xff1a;提供官方的Unity资源、教程和支持。内容权威且更新及时。 适合人群&#xff1a;所有层次的学员和开发者。 2. Unity3D中国 (https://unity.cn) - [推荐] 特点&#xff1a;Unity的中文官方…