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

力扣题解( 让字符串成为回文串的最少插入次数)

1312. 让字符串成为回文串的最少插入次数

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

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

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

思路:

本题要求的是最少插入次数,规定dp[i][j]是从i到j的最小插入次数,此时研究dp[i][j]的构成。

当i位置和j位置元素一致的时候,可以视为i+1,j-1范围的元素两边各加一个相同的值,则插入字符次数一样,因为可以看成在已经是回文的字串变成一个更长的字串。

当i位置和j位置不同时,此时可以分情况讨论,dp[i][j]的可能构成是对(i,j-1)的回文序列加上j位置元素,则只需要再加一即可构成新的回文序列(所加的就是一个j位置的数值),同理,也可能是(i-1,j)的回文序列再加上i位置元素,此时也是加一,也可能是(i+1,j-1)位置的回文序列,在两侧分别加一个元素(一个加i位置,一个加j位置),则dp[i][j]就是上述三种情况的最小值。

初始化时每个元素自己一定是回文,故均是0开局即可。

最后返回的是(0到n-1)位置的最小切割次数,故返回dp[0][n-1]即可。

class Solution {
public:int minInsertions(string s) {int n=s.size();vector<vector<int>>dp(n,vector<int>(n,INT_MAX));for(int j=0;j<n;j++){for(int i=j;i>=0;i--){   int k=0;if(s[i]==s[j]){if(i+1<=j-1){k=dp[i+1][j-1];}}else{  if(i+1<=j-1){   k=min(dp[i+1][j-1]+2,min(dp[i+1][j]+1,dp[i][j-1]+1));}elsek=1;}dp[i][j]=min(k,dp[i][j]);}}return dp[0][n-1];}
};

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C++知识要点总结笔记
  • 关于Qt Creator 使用Qt Quick的Design模式设置
  • 【运维】docker批量删除临时镜像(两种方式)
  • Postman下载及使用说明
  • 人工智能算法工程师(中级)课程9-PyTorch神经网络之全连接神经网络实战与代码详解
  • 网络安全设备——EDR
  • 【Linux】Ubuntu配置JDK环境、MySQL环境
  • 无障碍全免费上手智能体:Autogen Studio结合Deepseek Coder打造一款AI旅游规划师
  • Vuforia AR篇(八)— AR塔防上篇
  • Wireshark 对 https 请求抓包并展示为明文
  • matlab R2016b安装cplex12.6,测试时cplex出现出现内部错误的解决方法
  • “论软件维护方法及其应用”写作框架,软考高级论文,系统架构设计师论文
  • 前端挑战:Tkinter布局与设计【三种布局】
  • 基于STM32设计的家庭智能健康监测系统(局域网)(185)
  • Elasticsearch:介绍 retrievers - 搜索一切事物
  • SegmentFault for Android 3.0 发布
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • Angular 响应式表单之下拉框
  • AngularJS指令开发(1)——参数详解
  • docker容器内的网络抓包
  • gops —— Go 程序诊断分析工具
  • Mybatis初体验
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • node学习系列之简单文件上传
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • Spark RDD学习: aggregate函数
  • vue总结
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 和 || 运算
  • ------- 计算机网络基础
  • 如何用vue打造一个移动端音乐播放器
  • 优秀架构师必须掌握的架构思维
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • MyCAT水平分库
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • ​ubuntu下安装kvm虚拟机
  • ​插件化DPI在商用WIFI中的价值
  • ​一些不规范的GTID使用场景
  • #Datawhale AI夏令营第4期#多模态大模型复盘
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #include到底该写在哪
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (152)时序收敛--->(02)时序收敛二
  • (3)llvm ir转换过程
  • (39)STM32——FLASH闪存
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (动态规划)5. 最长回文子串 java解决
  • (每日一问)操作系统:常见的 Linux 指令详解
  • (七)Flink Watermark
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (十一)图像的罗伯特梯度锐化
  • (四)鸿鹄云架构一服务注册中心