文章目录

  • 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)相关推荐

  1. 力扣--让字符串成为回文串的最少插入次数

    力扣–让字符串成为回文串的最少插入次数 文章目录 力扣--让字符串成为回文串的最少插入次数 一.题目描述 二.分析 三.代码 相关题目: 腾讯–构造回文:腾讯–构造回文 最长回文子串和回文链表:最长回 ...

  2. leetcode 高薪_利用两种不同的方法解LeetCode第1312题:让字符串成为回文串的最少插入次数

    题目描述(难度困难) 给你一个字符串 s ,每一次操作你都可以在字符串的任意位置插入任意字符.请你返回让 s 成为回文串的 最少操作次数 . 「回文串」是正读和反读都相同的字符串. 示例 1: 输入: ...

  3. 【132】求把字符串分割成回文串的最少切分次数

    给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文. 返回符合要求的 最少分割次数 . 示例 1: 输入:s = "aab" 输出:1 解释:只需一次分割就可将 s ...

  4. 分割两个字符串得到回文串[抽象--去除具体个性取共性需求]

    抽象 前言 一.分割两个字符串得到回文串 二.双指针 总结 参考文献 前言 抽象去个性留共性,是因为具体个性对于解决问题是个累赘.少了累赘,直击需求,才能进行问题转换或者逻辑转换. 一.分割两个字符串 ...

  5. LeetCode 1616. 分割两个字符串得到回文串

    文章目录 1. 题目 2. 解题 1. 题目 给你两个字符串 a 和 b ,它们长度相同. 请你选择一个下标,将两个字符串都在 相同的下标 分割开. 由 a 可以得到两个字符串: aprefix 和 ...

  6. leetcode 探索 数组和字符串 验证回文串

    问题 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: "A man, a plan, ...

  7. 字符串-验证回文串(双指针法)

    注: 回文串"是一个正读和反读都一样的字符串,比如"level"或者"noon"等等就是回文串. 题意: 给定一个字符串,验证它是否是回文串,只考虑字 ...

  8. 字符串处理 —— 回文串相关 —— Manacher 算法

    [概述] Manacher 算法又称马拉车算法,用于求最长回文子串. 对于最长回文子串传统的求法的求法是以每个字符为中心,向两边寻找回文子串,在遍历完整个数组后即可得到最长回文子串,其时间复杂度为 O ...

  9. 字符串处理 —— 回文串相关

    [回文串] 回文串,就是一个正读与反读都一样的字符串,比如:abcdcba.zxccxz 等 常见的回文串算法有:求字符串中最长回文串.判断一个字符串是否为回文串.在字符中添加/删除一个字符后是否为回 ...

最新文章

  1. react 嵌套渲染_React 中嵌套数组数据如何渲染到前端页面
  2. docker 网络 实现
  3. Intel Realsense 处理帧时报错:RuntimeError: null pointer passed for argument frame_ref
  4. 如何关闭一切流氓程序开机自启【gitter、vmware等】
  5. 转发:Ajax动态画EChart图表
  6. C++PrimerPlus学习——第六章编程练习
  7. 原型制作是什么意思_制作电路原型的最佳方法是什么?
  8. YouTube上最火的OpenCV-Python入门视频教程
  9. android自动发送dtmf,Android发送dtmf键盘事件(模拟通话界面键盘事件)
  10. android 后台运行管理,Android 后台运行白名单,优雅实现保活
  11. 计算机考研 外部排序,2021考研408数据结构基础知识点:外部排序
  12. HackTheBox - Unified
  13. 算法初步--什么是算法
  14. redis服务器cpu100%的原因和解决方案
  15. 于数学极限定义的量词组合复杂度
  16. 潘多拉路由器搭建php,【请教】潘多拉(PandoraBox)双Wan如何配置叠加宽带
  17. 2.1.5 校验码(一文带你分析搞懂:奇偶校验码、海明码、CRC码)
  18. 如何实现一款毫秒级实时数据分析引擎
  19. ssm学生成绩管理系统的设计与实现毕业设计源码070942
  20. 第 15 章 Div+CSS页面设计

热门文章

  1. 电脑键盘练习_电脑新手最关心的:零基础如何快速掌握电脑打字的技巧?
  2. python中的流程控制
  3. 能设值多个rowkey吗_顶楼送了露台,悄悄搭建阳光房,偏偏我家露台多个帽子,能拆吗?...
  4. 计算机等级考试2010,2010年全国计算机等级考试相关政策
  5. 电子计算机可直接执行的指令机器内部是以,电子计算机可直接执行的指令在机器内部是以( )表示....
  6. Python3 B格注释
  7. openstack添加热添加硬盘并识别
  8. Theano 更多示例
  9. 分页查询千万级数据慢
  10. linux 常用操作指令(随时更新)