当前位置: 首页 > news >正文

【动态规划-最长公共子序列(LCS)】力扣712. 两个字符串的最小ASCII删除和

给定两个字符串s1 和 s2,返回 使两个字符串相等所需删除字符的 ASCII 值的最小和 。

示例 1:
输入: s1 = “sea”, s2 = “eat”
输出: 231
解释: 在 “sea” 中删除 “s” 并将 “s” 的值(115)加入总和。
在 “eat” 中删除 “t” 并将 116 加入总和。
结束时,两个字符串相等,115 + 116 = 231 就是符合条件的最小和。

示例 2:
输入: s1 = “delete”, s2 = “leet”
输出: 403
解释: 在 “delete” 中删除 “dee” 字符串变成 “let”,
将 100[d]+101[e]+101[e] 加入总和。在 “leet” 中删除 “e” 将 101[e] 加入总和。
结束时,两个字符串都等于 “let”,结果即为 100+101+101+101 = 403 。
如果改为将两个字符串转换为 “lee” 或 “eet”,我们会得到 433 或 417 的结果,比答案更大。

提示:
0 <= s1.length, s2.length <= 1000
s1 和 s2 由小写英文字母组成

class Solution {
public:int minimumDeleteSum(string s1, string s2) {int m = s1.length(), n = s2.length();vector<vector<int>> dp(m+1,vector<int>(n+1));for(int i = 1; i <= m; i++){char c1 = s1.at(i-1);for(int j = 1; j <= n; j++){char c2 = s2.at(j-1);if(c1 == c2){dp[i][j] = dp[i-1][j-1] + int(c2);}else{dp[i][j] = max(dp[i-1][j], dp[i][j-1]);}}}int ans1 = 0, ans2 = 0;for(int i = 0; i < m; i++){ans1 += int(s1[i]);}for(int i = 0; i < n; i++){ans2 += int(s2[i]);}return ans1 + ans2 - 2*dp[m][n];}
};

力扣1143的LCS模板题的变形,我们采用一样的动态规划进行修改, dp[i][j] = dp[i-1][j-1] + int(c2);在这行代码中我们将原本的+1改成了加上字符的ascII码,所以最后dp中储存的是最长公共子序列的ascII码值总和。最后我们计算出字符串s1和s2的ascII码之和,然后减去保留下来的相同子序列的ascII码值(需要乘以2),剩下的就是两个字符串的最小ASCII删除和。

相关文章:

【动态规划-最长公共子序列(LCS)】力扣712. 两个字符串的最小ASCII删除和

给定两个字符串s1 和 s2&#xff0c;返回 使两个字符串相等所需删除字符的 ASCII 值的最小和 。 示例 1: 输入: s1 “sea”, s2 “eat” 输出: 231 解释: 在 “sea” 中删除 “s” 并将 “s” 的值(115)加入总和。 在 “eat” 中删除 “t” 并将 116 加入总和。 结束时&…...

override

override 是 C11 引入的一个关键字&#xff0c;override 的作用是在派生类中显式地声明某个函数是用于重写基类的虚函数。它不仅仅是一个语法标记&#xff0c;更重要的是提供了编译时的错误检查功能&#xff0c;确保程序员确实按照预期在派生类中重写了基类的函数。如果没有正确…...

万象奥科工业平板上线,邀您体验与众不同!

Vanxoak推出的全新品类——ARM工业平板电脑&#xff01;该系列工业平板具有防护等级高、接口丰富、易开发等特点&#xff0c;专为工业HMI&#xff08;人机界面&#xff09;和工业控制领域设计。整机采用高性能工业级ARM处理器&#xff0c;适配全贴合电容触摸屏&#xff0c;可选…...

java将word转pdf

总结 建议使用aspose-words转pdf,poi的容易出问题还丑… poi的(多行的下边框就不对了) aspose-words的(基本和word一样) poi工具转换 <!-- 处理PDF --><dependency><groupId>fr.opensagres.xdocreport</groupId><artifactId>fr.opensagres…...

Golang | Leetcode Golang题解之第449题序列化和反序列化二叉搜索树

题目&#xff1a; 题解&#xff1a; type Codec struct{}func Constructor() (_ Codec) { return }func (Codec) serialize(root *TreeNode) string {arr : []string{}var postOrder func(*TreeNode)postOrder func(node *TreeNode) {if node nil {return}postOrder(node.Le…...

基于SpringBoot+Vue+MySQL的美食信息推荐系统

系统展示 用户前台界面 管理员后台界面 系统背景 在数字化时代&#xff0c;随着人们对美食文化的热爱与追求不断增长&#xff0c;美食信息推荐系统成为了连接食客与美食之间的重要桥梁。面对海量的美食信息&#xff0c;用户往往难以快速找到符合个人口味和需求的美食。因此&…...

spring boot jar 分离自动部署脚本

背景 远程部署时spring boot 包&#xff0c;比较大。可以采用依赖库和业务包分离的方式。提供一个脚本进行自动部署 maven 配置分离jar包 <build><finalName>${project.artifactId}</finalName><plugins><plugin><groupId>org.springfra…...

PGMP-03战略一致性

1.概要 program strategy alignment&#xff1a;战略一致性 2.详细...

华为OD机试真题---智能成绩表

题目描述 小明来到某学校当老师&#xff0c;需要将学生按考试总分或单科分数进行排名。输入包括学生人数、科目数量、科目名称、每个学生的姓名和对应科目的成绩&#xff0c;最后输入一个用作排名的科目名称。如果输入的排名科目不存在&#xff0c;则按总分进行排序。输出一行…...

828华为云征文 | 华为云Flexus云服务器X实例搭建企业内部VPN私有隧道,以实现安全远程办公

VPN虚拟专用网络适用于企业内部人员流动频繁和远程办公的情况&#xff0c;出差员工或在家办公的员工利用当地ISP就可以和企业的VPN网关建立私有的隧道连接。 通过拨入当地的ISP进入Internet再连接企业的VPN网关&#xff0c;在用户和VPN网关之间建立一个安全的“隧道”&#xff…...

Hadoop集群的高可用(HA):NameNode和resourcemanager高可用的搭建

文章目录 一、NameNode高可用的搭建1、免密配置2、三个节点都需要安装psmisc3、检查三个节点是否都安装jdk以及zk4、检查是否安装了hadoop集群5、修改hadoop-env.sh6、修改core-site.xml7、修改hdfs-site.xml8、检查workers 文件是否为三台服务9、分发给其他两个节点10、初始化…...

支付宝沙箱环境 支付

一 什么是沙箱&#xff1a; 沙箱环境是支付宝开放平台为开发者提供的安全低门槛的测试环境 支付宝正式和沙箱环境的区别 &#xff1a; AI&#xff1a; 从沙箱到正式环境&#xff1a; 当应用程序开发完成后&#xff0c;需要将应用程序从沙箱环境迁移到正式环境。 这通常涉及…...

获取unity中prefab的中文文本内容以及和prefab有关的问题

背景1&#xff1a;经常会在开发中遇到策划需要改某个界面&#xff0c;但是我们不知道那是什么界面&#xff0c;只看到一些关键字比如圣诞活动&#xff0c;那这样我就可以轻易找到这个预设了。另外还可以扩展就是收集项目中的所有中文文本然后归集到多语言表中&#xff0c;然后接…...

Web自动化中常用XPath定位方式

在进行Web自动化测试时&#xff0c;元素定位是一个至关重要的环节。XPath&#xff08;XML Path Language&#xff09;是一种用于在XML文档中定位节点的语言。在Web自动化中&#xff0c;XPath广泛应用于定位HTML元素。本文将详细介绍几种常用的XPath定位方式&#xff0c;包括绝对…...

Unity3D播放GIF图片使用Animation来制作动画

系列文章目录 unity工具 文章目录 系列文章目录👉前言👉一、下载GIF动图,用PS制作导出帧动画图片👉二、使用Animation制作动画👉三、脚本控制动画播放👉壁纸分享👉总结👉前言 unity播放gif图片,本身是不支持的,但是可以使用其他方法来实现, 1.有一种使用System…...

redo log 和 bin log 的两阶段提交

两阶段提交的过程 当事务提交后&#xff0c;有一个两阶段提交策略。 在开启两阶段提交时&#xff0c;会开启一个 XA 事务&#xff08;宏观上的事务&#xff09;&#xff0c; Prepare 阶段&#xff1a;将 redo log 的状态设置为 prepare&#xff0c;然后将 事务XID 写入 redo…...

Go基础学习07-map注意事项;多协程对map的资源竞争;sync.Mutex避免竟态条件

文章目录 Go中map使用以及注意事项map使用时的并发安全问题 Go中map使用以及注意事项 Go语言中map使用简单示例&#xff1a; func main() {var mp map[string]int// mp : map[string]int{}val, ok : mp["one"]if ok {fmt.Println(val)} else {fmt.Println(val)}mp[…...

远程服务器安装anaconda并创建虚拟环境

1、承接上文新用户zrcs&#xff0c;在服务器的zrcs文件夹下直接下载anaconda&#xff08;很慢&#xff09;&#xff1a; wget https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-x86_64.sh 或者选择本地下载&#xff0c;清华大学开源软件镜像站&#xff1a;https:/…...

什么是IIC通信协议?

IIC&#xff08;Inter-Integrated Circuit&#xff09;通信协议&#xff0c;又称为I2C&#xff08;Inter-Integrated Circuit 2&#xff09;协议&#xff0c;是一种广泛使用的串行通信协议。它由飞利浦半导体公司&#xff08;现NXP Semiconductors&#xff09;开发&#xff0c;…...

P3131 [USACO16JAN] Subsequences Summing to Sevens S Python题解

[USACO16JAN] Subsequences Summing to Sevens S 题目描述 Farmer John’s N N N cows are standing in a row, as they have a tendency to do from time to time. Each cow is labeled with a distinct integer ID number so FJ can tell them apart. FJ would like to ta…...

Sketch Find and Replace终极指南:设计师必备的批量文本替换神器

Sketch Find and Replace终极指南&#xff1a;设计师必备的批量文本替换神器 【免费下载链接】Sketch-Find-And-Replace Sketch plugin to do a find and replace on text within layers 项目地址: https://gitcode.com/gh_mirrors/sk/Sketch-Find-And-Replace 还在为Sk…...

深度解构:指纹浏览器底层隔离与Python高并发RPA,如何重塑电商矩阵自动化架构?

大家好&#xff0c;我是林焱&#xff0c;一名专注电商底层业务逻辑与 RPA 自动化架构定制的独立开发者。 在 CSDN 的各个技术板块中&#xff0c;关于爬虫与反爬虫、并发调度、以及客户端架构的讨论一直是热点。而将这些技术综合应用到极致的领域之一&#xff0c;就是当下极度内…...

S7-1200 PLC 五大核心实验精讲:从振荡电路到浮点数运算的仿真实战

1. 从零开始搭建S7-1200仿真环境 第一次接触西门子S7-1200 PLC时&#xff0c;我被它强大的功能和复杂的软件界面吓到了。后来发现只要掌握几个关键步骤&#xff0c;仿真环境搭建其实比想象中简单得多。这里分享我的踩坑经验&#xff0c;帮你省去80%的摸索时间。 首先需要安装…...

构建本地语音智能体:基于Go与OpenClaw的实时交互系统

1. 项目概述&#xff1a;一个能听懂你说话的本地智能体伙伴如果你和我一样&#xff0c;对传统的、需要打字输入、反应迟缓的AI助手感到厌倦&#xff0c;总幻想着能有一个像电影《Her》里Samantha那样的智能伙伴&#xff0c;能用最自然的语音与你交流&#xff0c;甚至能帮你执行…...

SyntaxUI:基于Tailwind CSS与Framer Motion的React组件库实战指南

1. 项目概述&#xff1a;SyntaxUI&#xff0c;一个为现代Web开发者提速的组件库如果你和我一样&#xff0c;常年奋战在React、Next.js项目的一线&#xff0c;那你一定对“重复造轮子”这件事深恶痛绝。每次新项目启动&#xff0c;从零开始搭建按钮、卡片、模态框、导航栏&#…...

中国移联AI元宇宙产业委调研阿尔特汽车科技园 构建高精尖产业的“技术-场景-商业”融合生态

&#xff08;央链知播 北京讯&#xff09; 5月7日&#xff0c;中国移动通信联合会人工智能与元宇宙产业工作委员会&#xff08;简称“中国移联AI与元宇宙产业委”&#xff09;、中国移动通信联合会数字文化与智慧教育分会、中国通信工业协会区块链专业委员会等机构秘书长何超带…...

基于Ollama构建本地大模型智能体:从原理到工程实践

1. 项目概述&#xff1a;当本地大模型遇上智能体框架最近在折腾本地大模型应用开发的朋友&#xff0c;估计都绕不开一个核心问题&#xff1a;如何让一个“聪明”的模型&#xff0c;不仅能回答问题&#xff0c;还能像真正的助手一样&#xff0c;自主调用工具、处理复杂任务&…...

如何用Rye与Docker打造无缝Python容器开发环境:完整实践指南

如何用Rye与Docker打造无缝Python容器开发环境&#xff1a;完整实践指南 【免费下载链接】rye a Hassle-Free Python Experience 项目地址: https://gitcode.com/gh_mirrors/ry/rye Rye是一款旨在提供无忧Python开发体验&#xff08;a Hassle-Free Python Experience&am…...

奇异值分解(SVD):从黑盒到语义空间的一场解剖之旅

转载声明&#xff1a;本文核心思想源自 Jonathon Shlens A Tutorial on Principal Component Analysis、AMS Feature Column on SVD 及 LSA Tutorial 等经典文献&#xff0c;仅对叙述方式与图示进行重构&#xff0c;以适配中文技术社区的阅读语境。0. 开场&#xff1a;如果线性…...

终极智能温控指南:FanControl风扇控制软件完整配置教程

终极智能温控指南&#xff1a;FanControl风扇控制软件完整配置教程 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/f…...