LeetCode 1312. 让字符串成为回文串的最少插入次数(区间DP)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

给你一个字符串 s ,每一次操作你都可以在字符串的任意位置插入任意字符。

请你返回让 s 成为回文串的 最少操作次数

「回文串」是正读和反读都相同的字符串。

示例 1:
输入:s = "zzazz"
输出:0
解释:字符串 "zzazz" 已经是回文串了,所以不需要做任何插入操作。示例 2:
输入:s = "mbadm"
输出:2
解释:字符串可变为 "mbdadbm" 或者 "mdbabdm" 。示例 3:
输入:s = "leetcode"
输出:5
解释:插入 5 个字符后字符串变为 "leetcodocteel" 。示例 4:
输入:s = "g"
输出:0示例 5:
输入:s = "no"
输出:1提示:
1 <= s.length <= 500
s 中所有字符都是小写字母。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-insertion-steps-to-make-a-string-palindrome
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

类似题目:
LeetCode 5. 最长回文子串(动态规划)
LeetCode 647. 回文子串(DP)
LeetCode 1216. 验证回文字符串 III(DP)
LeetCode 516. 最长回文子序列(动态规划)

  • dp[i][j] 区间 [i,j] 变成回文的最少操作次数
class Solution {
public:int minInsertions(string s) {int n = s.size();vector<vector<int>> dp(n,vector<int>(n, 0));for(int i = 1; i < n; i++) {if(s[i-1] != s[i])//初始化dp[i-1][i] = 1;}for(int len = 2; len < n; len++){for(int i = 0; i+len < n; i++){int j = i+len;if(s[i]==s[j])dp[i][j] = dp[i+1][j-1];else{dp[i][j] = min(2+dp[i+1][j-1], 1 + min(dp[i+1][j], dp[i][j-1]));}}}return dp[0][n-1];}
};

88 ms 26.6 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

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

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

相关文章

oracle 临时表空间的增删改查

oracle 临时表空间的增删改查 1、查看临时表空间 &#xff08;dba_temp_files视图&#xff09;&#xff08;v_$tempfile视图&#xff09;select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files;select status,enabled, name, bytes/…

Django创建项目

创建项目的名称为test1&#xff0c;完成“图书-英雄”信息的维护&#xff0c;创建应用名称为booktest 创建项目 cd /home/Desktop/ mkdir pytest cd pytest 创建项目的命令如下&#xff1a; django-admin startproject test1 项目默认目录说明 进入test1目录&#xff0c;查看…

分类模型的评估

分类模型的评估 在许多实际问题中&#xff0c;衡量分类器任务的成功程度是通过固定的性能指标来获取。一般最常见使用的是准确率&#xff0c;即预测结果正确的百分比&#xff0c;方法为estimator.score() 1 混淆矩阵 有时候&#xff0c;我们关注的是样本是否被正确诊断出来。…

LeetCode 996. 正方形数组的数目(回溯+剪枝)

文章目录1. 题目2. 解题1. 题目 给定一个非负整数数组 A&#xff0c;如果该数组每对相邻元素之和是一个完全平方数&#xff0c;则称这一数组为正方形数组。 返回 A 的正方形排列的数目。两个排列 A1 和 A2 不同的充要条件是存在某个索引 i&#xff0c;使得 A1[i] ! A2[i]。 …

Django第一天笔记

1、网站架构演变 1.1 网站访问流程 1.2 网站架构演变 1.2.1 单一应用架构 场景&#xff1a;路边摊的手抓饼 需求&#xff1a; 需求单一 功能&#xff1a; 需求--配菜--制作 一个人搞定 效率&#xff1a; 对单个需求来说&#xff1a;快 特点&#xff1a; 需求&#xff1a;单一…

[Java]java反射随笔

类是面向对象的灵魂&#xff0c;一切事物都可以以类来抽象。 在java使用过程中&#xff0c;我们可能会经常用到一个反射的知识&#xff0c;只是别人都封装好的&#xff0c;如jdbc的加载驱动类有一句Class.for(“…jdbc…”).newInstance.当然框架也是离不开了反射&#xff0c;s…

模型的选择与调优

模型的选择与调优 1 交叉验证 1.1 交叉验证过程 交叉验证&#xff1a;为了让被评估的模型更加准确可信 交叉验证的意义&#xff1a;为了使一部分数据即当成验证集&#xff0c;也做过训练集&#xff0c;更加准确得出准确率&#xff0c;把最后的准确率取平均值。 注意&#…

Django创建图书管理项目(完整版

一、创建项目test1及应用booktest 创建应用booktest 二、安装应用 在test1/settings.py中INSTALLED_APPS下添加应用的名称就可以完成安装 初始项目的INSTALLED_APPS如下图&#xff1a; 在元组中添加一个新的项&#xff0c;当前示例为booktest booktest, 三、设计模型 1.定义模型…

05.序列模型 W3.序列模型和注意力机制

文章目录1. 基础模型2. 选择最可能的句子3. 集束搜索&#xff08;Beam Search&#xff09;4. 改进集束搜索5. 集束搜索的误差分析6. Bleu 得分7. 注意力模型直观理解8. 注意力模型9. 语音识别&#xff08;Speech recognition&#xff09;10. 触发字检测&#xff08;Trigger Wor…

显示桌面图标不见了

在Windows操作系统中&#xff0c;任务栏&#xff08;快速启动栏&#xff09;中的显示桌面图标的实际位置是“C:\\Windows\\System\\显示桌面.scf”。快速启动是通过放在“C:\\Windows\\Application Data\\Microsoft\\Internet Explorer\\Quick Launch\\显示桌面.scf”实现的。当…

决策树-分类算法

决策树-分类算法 1 认识决策树 决策树是一种基本的分类方法&#xff0c;也可以用于回归。我们一般只讨论用于分类的决策树。决策树模型呈树形结构&#xff0c;在分类问题中&#xff0c;表示基于特征对实例进行分类的过程&#xff0c;它可以认为是if-then规则的集合。在决策树…

在Visual Studio中利用NTVS创建Pomelo项目

刚看新闻&#xff0c;才知道微软发布了Node.js Tools for Visual Studio&#xff08;NTVS&#xff09;&#xff0c;受够了WebStorm输入法Bug的困扰&#xff0c;这下终于可以解脱了。以Pomelo为例&#xff0c;运行命令&#xff1a;pomelo init pomelo_test&#xff0c;生成一个默…

LeetCode 834. 树中距离之和(树上DP)*

文章目录1. 题目2. 解题1. 题目 给定一个无向、连通的树。树中有 N 个标记为 0...N-1 的节点以及 N-1 条边 。 第 i 条边连接节点 edges[i][0] 和 edges[i][1] 。 返回一个表示节点 i 与其他所有节点距离之和的列表 ans。 示例 1: 输入: N 6, edges [[0,1],[0,2],[2,3],[…

Django第二天笔记

一、安装虚拟环境 安装虚拟环境软件 pip3 install virtualenv 安装虚拟环境扩展包 pip3 install virtualenvwrapper 配置家目录下的环境配置文件 .bashrc,添加如下内容 export WORKON_HOME$HOME/.virtualenvs source /usr/local/bin/virtualenvwrapper.sh 环境变量生效 source…

随机森林-集成学习方法(分类)

随机森林-集成学习方法&#xff08;分类&#xff09; 1 集成学习方法 集成学习通过建立几个模型组合的来解决单一预测问题。它的工作原理是生成多个分类器/模型&#xff0c;各自独立地学习和作出预测。这些预测最后结合成单预测&#xff0c;因此优于任何一个单分类的做出预测…

05.序列模型 W3.序列模型和注意力机制(作业:机器翻译+触发词检测)

文章目录作业1&#xff1a;机器翻译1. 日期转换1.1 数据集2. 用注意力模型进行机器翻译2.1 注意力机制3. 可视化注意力作业2&#xff1a;触发词检测1. 数据合成&#xff1a;创建语音数据集1.1 听一下数据1.2 音频转频谱1.3 生成一个训练样本1.4 全部训练集1.5 开发集2. 模型2.1…

线性回归分析-回归算法

线性回归分析-回归算法 1 回归算法 机器学习中监督学习算法分为分类算法和回归算法两种&#xff0c;其实就是根据类别标签分布类型为离散型、连续性而定义的。回归算法用于目标是连续的&#xff0c;在指定区间内可以是任意一个数值&#xff0c;针对的是数值型的样本&#xff0…

占位

占位 转载于:https://www.cnblogs.com/CharmingDang/p/9663915.html

Django入门 -- 框架操作基本流程

-- 入门 123456789# Django开发流程&#xff1a;# 1.创建虚拟环境&#xff1b;# 2.安装django&#xff1b;# 3.创建项目&#xff1b;# 4.创建应用&#xff1b;# 5.在models.py中定义模型类&#xff0c;为视图提供数据&#xff1b;# 6.定义视图,处理浏览器请求# 7.配置URL# 8.创…

拟合与岭回归

目录 拟合与岭回归 1 什么是过拟合与欠拟合 2 模型复杂度 3 鉴别欠拟合与过拟合 4 过拟合解决方法 5 岭回归&#xff08;Ridge&#xff09; 6 模型的保存与加载 拟合与岭回归 1 什么是过拟合与欠拟合 通过下面两张图来解释过拟合和欠拟合&#xff1a; 左图中机器通过这…