[C国演义] 第二十章

第二十章

  • 最长回文子序列
  • 让字符串成为回文串的最少插入次数

最长回文子序列

力扣链接

  • 单个数组讨论子序列 ⇒ dp[i] -- 以nums[i]为结尾的所有子序列中, 回文子序列的最长长度. 然后讨论 最后一个位置的归属情况
    但 又要满足 回文结构 ⇒ 二维dp ⇒ dp[i][j] -- 区间[i, j]内, 回文子序列的最长长度

  • 状态转移方程

  • 遍历顺序

  • 初始化

    都初始化为 0不做初始化

  • 返回值 – 返回 dp[0][n-1]

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


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

力扣链接

  • 单个数组讨论子序列 ⇒ dp[i] -- 使以 nums[i] 结尾的区间内的字符串成为回文子串的最少插入次数. 然后讨论 最后一个位置的归属情况
    但 又要满足 回文结构 ⇒ 二维dp ⇒ dp[i][j] -- 使区间[i, j]内的字符串成为回文子序列的最少插入次数

  • 转态转移方程 : 先对区间 [i, j]的字符串进行分析

  • 遍历顺序

  • 初始化 – 都初始化为 0

  • 返回结果 – 返回 dp[0][n-1]

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


给你的机会要牢牢把握住, 捏在手心里, 不要让你在意的人难过 !
机会都是留给有准备的人 ! — — 雨 子

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

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

相关文章

并发编程之生产者消费者模型

什么是生产者消费者模型 生产者消费者模型是多线程中一个比较典型的模型。 打个比方&#xff1a;你是一个客户&#xff0c;你去超市里买火腿肠。 这段话中的 "你"就是消费者&#xff0c; 那么给超市提供火腿肠的供货商就是生产者。超市呢&#xff1f;超市是不是被…

CMT2300A超低功耗127-1020MHz Sub-1GHz全频段SUB-1G 射频收发芯片

CMT2300A超低功耗127-1020MHz Sub-1GHz全频段SUB-1G 射频收发芯片 Sub-1GHz&#xff0c;是指小于1GHz频率的统称。Sub-1GHz无线电频段应用的主要特点&#xff1a;&#xff08;1&#xff09;频率较低波长较长&#xff0c;传输距离远&#xff0c;穿透性强&#xff1b;&#xff0…

Python数据结构:字典(dict)详解

1.字典概念 字典在其他语言中可能会被称为“关联存储”或“关联数组”。   在Python中&#xff0c;字典&#xff08;Dictionary&#xff09;是一种可变、无序且键值对&#xff08;key-value pairs&#xff09;唯一的数据结构。   字典也是一种标准映射类型&#xff0c;mapp…

彩虹桥架构演进之路-性能篇

一、前言 一年前的《彩虹桥架构演进之路》侧重探讨了稳定性和功能性两个方向。在过去一年中&#xff0c;尽管业务需求不断增长且流量激增了数倍&#xff0c;彩虹桥仍保持着零故障的一个状态&#xff0c;算是不错的阶段性成果。而这次的架构演进&#xff0c;主要分享一下近期针对…

9步打造个人ip

什么是个人IP&#xff1f; 就是一个人创造出来的属于自己的有个性有价值的&#xff0c;能让他人记住你&#xff0c;信任你&#xff0c;认可你的东西。 如何强化个人IP呢&#xff1f; 需要一些必要的条件如专业性、耐心、勤奋等等要知道&#xff0c;打造IP是一个见效慢的过程&am…

零代码数字孪生设计平台的功能特点

在当今数字化的时代&#xff0c;企业的转型已经成为必然的趋势。而在这个过程中&#xff0c;3D数字孪生无代码编辑工具正成为企业实现数字化转型的新价值点。客户可以无需任何专业知识和专业软件的支持&#xff0c;仅仅通过互联网和浏览器即可根据购买要求对自己的产品/设备/园…

Ubuntu18.04平台下Qt开发程序打包的一些问题总结

目录 前言 一、在Ubuntu18.04开发环境下打包有两种方式 1、利用linuxdeployqt软件进行打包 2、利用编写shell脚本的方式进行打包 二、详细介绍shell脚本打包的方式 1、新建一个空的文件夹 2、准备脚本copylib.sh 3、准备脚本xxxx.sh。 4、给上述两个脚本添加可执行权限…

单相过压继电器DVR-G-100-1 0~500V AC/DC220V 导轨安装

系列型号 DVR-G-100-1X3数字式过压继电器&#xff1b; DVR-G-100-3三相过压继电器&#xff1b; DVR(H)-G-100-1单相过压继电器&#xff1b; DVR-Q-100-3三相欠压继电器&#xff1b; DVR(H)-Q-100-3三相欠压继电器 一、用途 主要应用于电机、变压器等主设备以及输配电系统的继…

全数字系列-麦克风K歌模组-搭配投影仪专业方案

麦克风学名传声器&#xff0c;是将声音信号转换为电信号的能量转换器件&#xff0c;也称话筒、微音器&#xff1b;主要包括拾音面和信号放大电路&#xff1b;利用微机械加工技术制作出来的电能换声器&#xff0c;具有体积小、频响特性好、噪声低、高集成度和适于大批量生产的特…

使用naive-ui做一个标签页展示列表

目录 零、引言 一、引入所需组件 二、引入数据 三、使用动态样式控制列表条纹 四、全部代码 五、设计思路 5.1组件设计思路 5.2背景颜色控制思路 5.3说明 六。最终效果 零、引言 有时候我们会有很多数据&#xff0c;分成好几类 每一类都需要展示&#xff0c;那么这时…

vue3 tsx 项目中使用 Antv/G2 实现多线折线图

Antv/G2 文档 Antv/G2 双折线图 安装依赖 项目中安装 antv/g2 依赖库&#xff1a; npm install antv/g2 --save安装成功&#xff1a; 项目使用 新建文件 IndicatorTrend.tsx&#xff1a; import { defineComponent, PropType, onMounted, ref } from vue import { useCh…

全网最全指南:什么是产品手册?又该如何编写呢?

如果你想提高对用户的支持&#xff0c;优先制作产品的产品手册至关重要。事实上&#xff0c;如果用户不知道如何使用你的产品&#xff0c;他们很可能会失去兴趣。用户通常在向客户寻求帮助之前会参考产品手册&#xff0c;因此你的手册是一个宝贵的资源&#xff0c;可以帮助降低…