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

leetcode 712. Minimum ASCII Delete Sum for Two Strings(字符串删除字母的ASCII码之和)

在这里插入图片描述

两个字符串s1, s2, 删除其中的字母使s1和s2相等。
问删除字母的最小ASCII码之和是多少。

思路:

DP

先考虑极端的情况,s1为空,那么要想达到s2和s1相等,就要把s2中的字母删完,
ASCII码之和就是s2中所有字母的ASCII码之和。
同理s2为空的情况。

现在来遍历s1和s2, s1的下标记为 i , s2的下标记为 j.
记dp[ i ][ j ]表示s1, s2分别遍历到i, j时删除字母的ASCII码之和。

如果s1[ i ] == s2[ j ], 字母相等,不需要删除,那么状态保持在前一状态,
也就是dp[ i ][ j ] = dp[i-1][j-1].

如果字母不相等,要么删除s1[ i ], 要么删除s2[ j ].
删除s1[ i ]的ASCII码: dp[i-1][ j ] + s1[ i ]
删除s2[ j ]的ASCII码: dp[i][ j+1 ] + s2[ j ]
取两者中较小的一个给dp[ i ][ j ]

最后返回dp[s1.length][s2.length]

    public int minimumDeleteSum(String s1, String s2) {char[] chs1 = s1.toCharArray();  //计算更快char[] chs2 = s2.toCharArray();int n1 = chs1.length;int n2 = chs2.length;int[][] dp = new int[n1+1][n2+1];//注意下面的i,j是遍历到的字符串长度,下标需要-1//s2长度为0时,s1达到长度为0需要删除字母的ASCII码之和for(int i = 1; i <= n1; i++) dp[i][0] = dp[i-1][0]+chs1[i-1];//s1长度为0时,s2达到长度为0需要删除字母的ASCII码之和for(int i = 1; i <= n2; i++) dp[0][i] = dp[0][i-1] + chs2[i-1];for(int i = 1; i <= n1; i++) {for(int j = 1; j <= n2; j++) {if(chs1[i-1] == chs2[j-1]) { //字符相等,不需要删除字母,保持前一状态dp[i][j] = dp[i-1][j-1];} else {//删除s1的一个字母或者删除s2的一个字母,取较小dp[i][j] = Math.min(dp[i-1][j]+chs1[i-1], dp[i][j-1]+chs2[j-1]); }}}return dp[n1][n2];}
http://www.lryc.cn/news/104954.html

相关文章:

  • Springboot -- 按照模板生成docx、pdf文件,docx转pdf格式
  • UE5.1.1 创建C++项目失败
  • windows进行端口映射
  • Python 异常处理
  • C++ 类的静态成员
  • 360T7路由器进行WiFi无线中继教程
  • 主成分分析
  • 笙默考试管理系统-MyExamTest(26)
  • 重新理解 RocketMQ Commit Log 存储协议
  • ES6基础知识十:你是怎么理解ES6中 Decorator 的?使用场景?
  • 接口/Web自动化测试如何做?框架如何搭建封装?
  • Linux怎么从网络上下载文件
  • Flutter携带JSON参数post请求
  • 【vue】vue-image-lazy图片懒加载使用与介绍【超详细+npm包源代码】
  • MFC第二十四天 使用GDI对象画笔和画刷来开发控件(分页控件选择态的算法分析、使用CToolTipCtrl开发动静态提示)
  • 【NLP-新工具】语音转文本与OpenAI的用途
  • try-catch-finally的字节码原理
  • 基于双层优化的微电网系统规划设计方法(Matlab代码实现)
  • 【Nginx13】Nginx学习:HTTP核心模块(十)Types、AIO及其它配置
  • 2023年华数杯数学建模C题思路分析
  • 安卓手机变身Linux服务器
  • 【Ansible】Ansible自动化运维工具之playbook剧本
  • Yolov8目标检测
  • Jmeter用于接口测试中,关联如何实现
  • 线程状态
  • HTML一些基础知识
  • git 命令总结
  • 【Django】如何优化数据库访问
  • 常压室温超导材料:揭开物理学的新篇章
  • 【《C# 10 和 .NET 6入门与跨平台开发(第6版)》——一本循序渐进的C#指南】