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阿明),一起加油、一起学习进步!
LeetCode 1312. 让字符串成为回文串的最少插入次数(区间DP)相关推荐
- 力扣--让字符串成为回文串的最少插入次数
力扣–让字符串成为回文串的最少插入次数 文章目录 力扣--让字符串成为回文串的最少插入次数 一.题目描述 二.分析 三.代码 相关题目: 腾讯–构造回文:腾讯–构造回文 最长回文子串和回文链表:最长回 ...
- leetcode 高薪_利用两种不同的方法解LeetCode第1312题:让字符串成为回文串的最少插入次数
题目描述(难度困难) 给你一个字符串 s ,每一次操作你都可以在字符串的任意位置插入任意字符.请你返回让 s 成为回文串的 最少操作次数 . 「回文串」是正读和反读都相同的字符串. 示例 1: 输入: ...
- 【132】求把字符串分割成回文串的最少切分次数
给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文. 返回符合要求的 最少分割次数 . 示例 1: 输入:s = "aab" 输出:1 解释:只需一次分割就可将 s ...
- 分割两个字符串得到回文串[抽象--去除具体个性取共性需求]
抽象 前言 一.分割两个字符串得到回文串 二.双指针 总结 参考文献 前言 抽象去个性留共性,是因为具体个性对于解决问题是个累赘.少了累赘,直击需求,才能进行问题转换或者逻辑转换. 一.分割两个字符串 ...
- LeetCode 1616. 分割两个字符串得到回文串
文章目录 1. 题目 2. 解题 1. 题目 给你两个字符串 a 和 b ,它们长度相同. 请你选择一个下标,将两个字符串都在 相同的下标 分割开. 由 a 可以得到两个字符串: aprefix 和 ...
- leetcode 探索 数组和字符串 验证回文串
问题 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: "A man, a plan, ...
- 字符串-验证回文串(双指针法)
注: 回文串"是一个正读和反读都一样的字符串,比如"level"或者"noon"等等就是回文串. 题意: 给定一个字符串,验证它是否是回文串,只考虑字 ...
- 字符串处理 —— 回文串相关 —— Manacher 算法
[概述] Manacher 算法又称马拉车算法,用于求最长回文子串. 对于最长回文子串传统的求法的求法是以每个字符为中心,向两边寻找回文子串,在遍历完整个数组后即可得到最长回文子串,其时间复杂度为 O ...
- 字符串处理 —— 回文串相关
[回文串] 回文串,就是一个正读与反读都一样的字符串,比如:abcdcba.zxccxz 等 常见的回文串算法有:求字符串中最长回文串.判断一个字符串是否为回文串.在字符中添加/删除一个字符后是否为回 ...
最新文章
- react 嵌套渲染_React 中嵌套数组数据如何渲染到前端页面
- docker 网络 实现
- Intel Realsense 处理帧时报错:RuntimeError: null pointer passed for argument frame_ref
- 如何关闭一切流氓程序开机自启【gitter、vmware等】
- 转发:Ajax动态画EChart图表
- C++PrimerPlus学习——第六章编程练习
- 原型制作是什么意思_制作电路原型的最佳方法是什么?
- YouTube上最火的OpenCV-Python入门视频教程
- android自动发送dtmf,Android发送dtmf键盘事件(模拟通话界面键盘事件)
- android 后台运行管理,Android 后台运行白名单,优雅实现保活
- 计算机考研 外部排序,2021考研408数据结构基础知识点:外部排序
- HackTheBox - Unified
- 算法初步--什么是算法
- redis服务器cpu100%的原因和解决方案
- 于数学极限定义的量词组合复杂度
- 潘多拉路由器搭建php,【请教】潘多拉(PandoraBox)双Wan如何配置叠加宽带
- 2.1.5 校验码(一文带你分析搞懂:奇偶校验码、海明码、CRC码)
- 如何实现一款毫秒级实时数据分析引擎
- ssm学生成绩管理系统的设计与实现毕业设计源码070942
- 第 15 章 Div+CSS页面设计
热门文章
- 电脑键盘练习_电脑新手最关心的:零基础如何快速掌握电脑打字的技巧?
- python中的流程控制
- 能设值多个rowkey吗_顶楼送了露台,悄悄搭建阳光房,偏偏我家露台多个帽子,能拆吗?...
- 计算机等级考试2010,2010年全国计算机等级考试相关政策
- 电子计算机可直接执行的指令机器内部是以,电子计算机可直接执行的指令在机器内部是以( )表示....
- Python3 B格注释
- openstack添加热添加硬盘并识别
- Theano 更多示例
- 分页查询千万级数据慢
- linux 常用操作指令(随时更新)