LeetCode 712. 两个字符串的最小ASCII删除和(DP,类似编辑距离)

1. 题目

给定两个字符串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",我们会得到 433417 的结果,比答案更大。注意:
0 < s1.length, s2.length <= 1000。
所有字符串中的字符ASCII值在[97, 122]之间。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-ascii-delete-sum-for-two-strings
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

类似题目:
LeetCode 72. 编辑距离(DP)
LeetCode 583. 两个字符串的删除操作(动态规划)

class Solution {
public:int minimumDeleteSum(string s1, string s2) {int i, j, n1 = s1.size(), n2 = s2.size();vector<vector<int>> dp(n1+1,vector<int>(n2+1,0));    	for(i = 0; i < n2; i++) dp[0][i+1] = dp[0][i] + int(s2[i]);for(i = 0; i < n1; i++) dp[i+1][0] = dp[i][0] + int(s1[i]);for(i = 1; i <= n1; i++){for(j = 1; j <= n2; j++){if(s1[i-1] == s2[j-1])//第i个字符与第j个字符相等dp[i][j] = dp[i-1][j-1];else//第i个字符与第j个字符 不相等{dp[i][j] = min(dp[i][j-1]+int(s2[j-1]),min(dp[i-1][j]+int(s1[i-1]), dp[i-1][j-1]+int(s1[i-1]+s2[j-1])));//       删除 s2[j-1]       			或者删除 s1[i-1] 			或者都删除 }}}return dp[n1][n2];}
};

100 ms 15.3 MB

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

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

相关文章

正则研究

到目前为止&#xff0c;许多的编程语言和工具都包含对正则表达式的支持&#xff0c;当然.NET也不例外&#xff0c;.NET基础类库中包含有一个名称空间和一系列可以充分发挥规则表达式威力的类。 正则表达式的知识可能是不少编程人员最烦恼的事儿了。如果你还没有规则表达式方面的…

python3字节转化字符_捋一捋字符串与字节序列的关系

Python3的一个新特性算是把文本和二进制数据清晰地区分开来了。我们看到的文本其实就是一连串的Unicode字符组成的str(下文文无特殊说明均指Unicode字符)&#xff0c;最后计算机以二进制数据的形式存储起来。Python内置了两种二进制数据类型&#xff0c;分别是bytes和bytearray…

李宏毅机器学习(九)Multi-lingual BERT

Multi-lingual BERT 输入多种语言来训练BERT Zero-shot Reading Comprehension 首先模型是在104种语言上进行训练的&#xff01; 并且以English的QA来training我们的模型&#xff0c;最后在回答问题的时候使用中文&#xff01; 可以看到如果在104种语言pre-train&#xff0c;…

[转]详细介绍如何做关联

如何在脚本中做关联 (Correlation)当录制脚本时&#xff0c;VuGen会拦截client端&#xff08;浏览器&#xff09;与server端&#xff08;网站服务器&#xff09;之间的对话&#xff0c;并且通通记录下来&#xff0c;产生脚本。在VuGen的Recording Log中&#xff0c;您可以找到浏…

zillow房价预测比赛_Kaggle竞赛 —— 房价预测 (House Prices)

这个比赛总的情况就是给你79个特征然后根据这些预测房价 (SalePrice)&#xff0c;这其中既有离散型也有连续性特征&#xff0c;而且存在大量的缺失值。不过好在比赛方提供了data_description.txt这个文件&#xff0c;里面对各个特征的含义进行了描述&#xff0c;理解了其中内容…

【转】RNN、LSTM、Transformer、BERT简介与区别

几者的主要参考文章&#xff1a; https://blog.csdn.net/weixin_41089007/article/details/96474760 RNN与LSTM的区别参考文章&#xff1a; https://blog.csdn.net/hfutdog/article/details/96479716 RNN和LSTM的区别如下&#xff1a; RNN没有细胞状态&#xff1b;LSTM通过细…

LeetCode 812. 最大三角形面积(坐标面积公式)

1. 题目 给定包含多个点的集合&#xff0c;从其中取三个点组成三角形&#xff0c;返回能组成的最大三角形的面积。 示例: 输入: points [[0,0],[0,1],[1,0],[0,2],[2,0]] 输出: 2 解释: 这五个点如下图所示。组成的橙色三角形是最大的&#xff0c;面积为2。注意: 3 < po…

孩子感冒发烧怎么办

老大感冒发烧三天刚好&#xff0c;老二开始咳嗽鼻塞&#xff0c;孩子们生病忙的就是父母&#xff0c;几天下来&#xff0c;连自己也病了。终于一切恢复常态&#xff0c;想想也该总结一下孩子们生病的经历。 1月1号夜里&#xff0c;老大开始咳嗽&#xff0c;以为是气候干燥&…

李宏毅机器学习(十)GPT-3

前情提要 论文名称&#xff1a; Language Models are Few-shot learners 但是GPT-3的缺点在于&#xff0c;太过巨大&#xff01; 它有多大呢&#xff1f; 原来最大的时候是Turing NLG&#xff0c;有17B&#xff0c;而GPT-3是它的10倍&#xff01; 对GPT-3的评价&#xff1a; …

ipython是免费的吗_IPython技巧

IPython是一个python的交互式shell&#xff0c;比python自带的shell好用得多&#xff0c;支持变量自动补全、自动缩进、直接运行shell命令、内置了许多很有用的功能和函数&#xff0c;让我们可以用更高的效率来使用python&#xff0c;同时也是利用Python进行科学计算和交互可视…

LeetCode 985. 查询后的偶数和

1. 题目 给出一个整数数组 A 和一个查询数组 queries。 对于第 i 次查询&#xff0c;有 val queries[i][0], index queries[i][1]&#xff0c;我们会把 val 加到 A[index] 上。 然后&#xff0c;第 i 次查询的答案是 A 中偶数值的和。 &#xff08;此处给定的 index quer…

C#正则表达式判断输入日期格式是否正确

/// <summary> /// 是否为日期型字符串 /// </summary> /// <param name"StrSource">日期字符串(2008-05-08)</param> /// <returns></returns> public static bool IsDate(string StrSourc…

知识图谱论文阅读(八)【转】推荐系统遇上深度学习(二十六)--知识图谱与推荐系统结合之DKN模型原理及实现

学习的博客&#xff1a; 推荐系统遇上深度学习(二十六)–知识图谱与推荐系统结合之DKN模型原理及实现 知识图谱特征学习的模型分类汇总 知识图谱嵌入(KGE)&#xff1a;方法和应用的综述 论文&#xff1a; Knowledge Graph Embedding: A Survey of Approaches and Application…

thinkphp用来做什么项目_thinkphp第1课:使用thinkphp创建一个项目

一、thinkphp第一课&#xff1a;1、在网站根目录下&#xff0c;建立一个项目名称orange&#xff1b;2、在orange目录下&#xff0c;创建一个入口文件index.php&#xff1a;define(APP_DEBUG,true); //开启调试模式require(../TP/ThinkPHP.php);?>3、下载thinkphp核心包并解…

LeetCode 1005. K 次取反后最大化的数组和

1. 题目 给定一个整数数组 A&#xff0c;我们只能用以下方法修改该数组&#xff1a; 我们选择某个个索引 i 并将 A[i] 替换为 -A[i]&#xff0c;然后总共重复这个过程 K 次。&#xff08;我们可以多次选择同一个索引 i。&#xff09; 以这种方式修改数组后&#xff0c;返回数…

Server操作Mxd文件详细讲解

Server操作Mxd文件详细讲解Server发布地图都是基于Mxd去发布的&#xff0c;这点与IMS使用axl文件差不多。一般来说&#xff0c;发布后mxd尽可能不要修改&#xff0c;或者在通过使用arcMap进行编辑后在重新发布。修改mxd会导致地图服务发生变化&#xff0c;因此&#xff0c;相对…

知识图谱入门知识(五)【转】秒懂词向量Word2Vec的本质

博文&#xff1a; 秒懂词向量Word2Vec的本质 什么是Word2Vec&#xff1f; 词性标注&#xff1a;是动词还是名词&#xff0c;样本&#xff08;x&#xff0c;y&#xff09;中&#xff0c;x是词语&#xff0c;y是它们的词性 f&#xff08;x&#xff09;->y 中的f&#xff08;…

af_netlink_2、netlink简介

Netlink 是一种特殊的 socket&#xff0c;它是 Linux 所特有的&#xff0c;类似于 BSD 中的AF_ROUTE 但又远比它的功能强大&#xff0c;目前在最新的 Linux 内核(2.6.14)中使用netlink 进行应用与内核通信的应用很多&#xff0c;包括&#xff1a;路由 daemon(NETLINK_ROUTE)&am…

LeetCode 819. 最常见的单词

1. 题目 给定一个段落 (paragraph) 和一个禁用单词列表 (banned)。 返回出现次数最多&#xff0c;同时不在禁用列表中的单词。 题目保证至少有一个词不在禁用列表中&#xff0c;而且答案唯一。 禁用列表中的单词用小写字母表示&#xff0c;不含标点符号。段落中的单词不区分…

Java代码优化方案 J2ME内存优化

从几本书上&#xff0c;N个网站上整理的一些JAVA代码优化方案&#xff0c;最近的项目只有1M内存可用&#xff0c;必须很抠门了~J2ME项目更要注意的 避免内存溢出 l 不用的对象释放(置空) 如 &#xff1a; a不为空时 anew object()//这句代码执行时将有两个对象存在于内存中 较…