Leetcode 712. 两个字符串的最小ASCII删除和
题目描述:
https://leetcode-cn.com/problems/minimum-ascii-delete-sum-for-two-strings/
解题思路:
也是典型的dp问题。利用二维dp数组求解。
建立一个二维数组Dp[ i ][ j ],Dp[ i ][ j ]表示从s1中拿出 i 个元素和从 s2 中拿出 j 个元素的最小删除数。
当s1[i]=s2[j]时,dp[i][j] = dp[i-1][j-1].
当s1[i]!=s2[j],
动态转移方程为:
dp[i][j] = min(dp[i-1][j]+s1[i], dp[i][j-1]+s2[j], dp[i-1][j-1]+s1[i]+s2[j]) 。
代码:
class Solution {
public:
int minimumDeleteSum(string s1, string s2) {
int len1 = s1.size();
int len2 = s2.size();
vector<vector<int>> dp(len1+, vector<int>(len2+, ));
for(int i=; i<=len1; i++)
{
dp[i][] = dp[i-][] + s1[i-];
}
for(int i=; i<=len2; i++)
{
dp[][i] = dp[][i-] + s2[i-];
}
for(int i=; i<len1; i++)
{
for(int j=; j<len2; j++)
{
if(s1[i] == s2[j])
dp[i+][j+] = dp[i][j];
else
{
dp[i+][j+] = min(dp[i][j+]+s1[i], dp[i+][j]+s2[j]);
dp[i+][j+] = min(dp[i+][j+], dp[i][j]+s1[i]+s2[j]);
}
} }
return dp[len1][len2];
}
};
Leetcode 712. 两个字符串的最小ASCII删除和的更多相关文章
- Java实现 LeetCode 712 两个字符串的最小ASCII删除和(最长公共子串&&ASCII值最小)
712. 两个字符串的最小ASCII删除和 给定两个字符串s1, s2,找到使两个字符串相等所需删除字符的ASCII值的最小和. 示例 1: 输入: s1 = "sea", s2 ...
- Leetcode之动态规划(DP)专题-712. 两个字符串的最小ASCII删除和(Minimum ASCII Delete Sum for Two Strings)
Leetcode之动态规划(DP)专题-712. 两个字符串的最小ASCII删除和(Minimum ASCII Delete Sum for Two Strings) 给定两个字符串s1, s2,找到 ...
- 【leet-code】712. 两个字符串的最小ASCII删除和
题目描述 给定两个字符串s1, s2,找到使两个字符串相等所需删除字符的ASCII值的最小和. 示例 1: 输入: s1 = "sea", s2 = "eat" ...
- [LeetCode] Minimum ASCII Delete Sum for Two Strings 两个字符串的最小ASCII删除和
Given two strings s1, s2, find the lowest ASCII sum of deleted characters to make two strings equal. ...
- [Swift]LeetCode712. 两个字符串的最小ASCII删除和 | Minimum ASCII Delete Sum for Two Strings
Given two strings s1, s2, find the lowest ASCII sum of deleted characters to make two strings equal. ...
- Q712 两个字符串的最小ASCII删除和
给定两个字符串s1, s2,找到使两个字符串相等所需删除字符的ASCII值的最小和. 示例 1: 输入: s1 = "sea", s2 = "eat" 输出: ...
- [LeetCode] 712. Minimum ASCII Delete Sum for Two Strings 两个字符串的最小ASCII删除和
Given two strings s1, s2, find the lowest ASCII sum of deleted characters to make two strings equal. ...
- 算法61---两个字符串的最小ASCII删除和【动态规划】
一.题目: 给定两个字符串s1, s2,找到使两个字符串相等所需删除字符的ASCII值的最小和. 示例 1: 输入: s1 = "sea", s2 = "eat" ...
- LeetCode 599: 两个列表的最小索引总和 Minimum Index Sum of Two Lists
题目: 假设 Andy 和 Doris 想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示. Suppose Andy and Doris want to cho ...
随机推荐
- JDBC学习笔记之SQLException介绍
1. SQLException 的概述 当使用 JDBC 与数据源(在本文中的数据源表示我们实际使用的数据库)进行交互的时候遇见错误的时候,将会抛出名为 SQLException 的异常.一个 SQL ...
- 环境变量(environment variable)
环境变量是什么 环境变量指的就是操作系统当中的一些变量.可以通过修改环境变量,来对计算机进行配置(主要是来配置一些路径的) 查看环境变量右键 计算机(此电脑),选择属性——系统界面左侧选择 高级系统设 ...
- 转://Linux下tmpfs介绍及使用
tmpfs介绍 tmpfs是一种虚拟内存文件系统,而不是块设备.是基于内存的文件系统,创建时不需要使用mkfs等初始化它最大的特点就是它的存储空间在VM(virtual memory),VM是由lin ...
- php 非对称加密解密类
<?phpnamespace app\Parentclient\model;header("Content-Type: text/html;charset=utf-8");/ ...
- 1.4 Genymotion模拟器安装
如果你符合下述三种情况的话,你可以考虑安装一个Genymotion Android模拟器: 没有真机调试,只能用模拟器 嫌SDK内置的AVD启动速度,运行速度慢 电脑配置还可以,最好4G内存以上 如果 ...
- 对node.js的理解?
a.Node.js是一个基于Google Chrome V8引擎的javascript运行环境.Node.js使用了一个事件驱动.非阻塞式I/O的模型,使其轻量又高效.Node.js的包管理器npm, ...
- 如何在自己设计的页面中调用metamask-1
启发: https://github.com/MetaMask/metamask-extension/issues/714 https://github.com/MetaMask/metamask-e ...
- day04--流程控制之if
编程的目的是让计算机像人脑一样工作,因此就需要让计算机具备人脑一样的逻辑思维,这里就需要用到计算机语言的流程控制: 流程控制之if......else 语法1: if 条件: 代码块 # 一组代码块的 ...
- Springmvc导出Excel(maven)
一.导入依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</ar ...
- 2018AVA: A Video Dataset of Spatio-temporally Localized Atomic Visual Actions
论文标题:AVA: A Video Dataset of Spatio-temporally Localized Atomic Visual Actions 来源/作者机构情况: 谷歌,http:// ...