【算法|动态规划No.28】leetcode1312. 让字符串成为回文串的最少插入次数
个人主页:兜里有颗棉花糖
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创
收录于专栏【手撕算法系列专栏】【LeetCode】
🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望对大家有所帮助
🍓希望我们一起努力、成长,共同进步。
点击直接跳转到该题目
目录
- 1️⃣题目描述
- 2️⃣题目解析
- 3️⃣解题代码
1️⃣题目描述
给你一个字符串 s ,每一次操作你都可以在字符串的任意位置插入任意字符。
请你返回让 s 成为回文串的 最少操作次数 。
「回文串」是正读和反读都相同的字符串。
示例1:
输入:s = “zzazz”
输出:0
解释:字符串 “zzazz” 已经是回文串了,所以不需要做任何插入操作。
示例2:
输入:s = “mbadm”
输出:2
解释:字符串可变为 “mbdadbm” 或者 “mdbabdm” 。
示例3:
输入:s = “leetcode”
输出:5
解释:插入 5 个字符后字符串变为 “leetcodocteel” 。
注意:
1 <= s.length <= 500s 中所有字符都是小写字母。
2️⃣题目解析
状态表示:
dp[i][j]:表示区间[i,j]字符串称为回文串的最少插入次数。
状态转移方程如下图:
返回值:
dp[0][n-1]
3️⃣解题代码
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 + 1;j < n;j++){if(s[i] == s[j]) dp[i][j] = dp[i + 1][j - 1];else dp[i][j] = min(1 + dp[i][j - 1],1 + dp[i + 1][j]);}}return dp[0][n - 1];}
};
最后就顺利通过啦!!!
相关文章:
【算法|动态规划No.28】leetcode1312. 让字符串成为回文串的最少插入次数
个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…...
AWS SAP-C02教程10-其它服务
接下来介绍的内容是一些SAP-C02考试会涉及到的,但是目前无法很好将其归类,暂且放在其它服务中 目录 1 AWS WorkSpaces2 AWS APP Stream 2.02.1 WorkSpaces vs APP Stream 2.03 AWS Device Farm4 AWS AppSync5 AWS Outposts6 AWS WaveLength7 AWS Local Zones8 AWS Cloud Map…...
C语言 力扣习题 10.19日 day1
1.两整数相加 给你两个整数 num1 和 num2,返回这两个整数的和。 示例 1: 输入:num1 12, num2 5 输出:17 解释:num1 是 12,num2 是 5 ,它们的和是 12 5 17 ,因此返回 17 。 示例 …...
【Linux升级之路】8_Linux多线程
目录 一、【Linux初阶】多线程1 | 页表的索引作用,线程基础(优缺点、异常、用途),线程VS进程,线程控制,C多线程引入二、【Linux初阶】多线程2 | 分离线程,线程库,线程互斥࿰…...
FFT64点傅里叶变换verilog蝶形运算,代码和视频
名称:FFT64点verilog傅里叶变换 软件:Quartus 语言:Verilog 代码功能: 使用verilog代码实现64点FFT变换,使用蝶形运算实现傅里叶变换 演示视频:http://www.hdlcode.com/index.php?mhome&cView&…...
学习JS闭包
作用域 作用域分为:全局作用域和函数作用域。链式作用域:子对象会一级一级往上查找父对象的变量。 什么是闭包? 闭包可以理解为定义在函数内部的函数,是由一个函数以及与其相关的引用环境组合而成的实体。可以在函数内部访问外部函数的变量&a…...
在Mac上安装配置svn
版本控制系统对于程序员来说是至关重要的工具,而Subversion(简称svn)就是一种流行的版本控制系统。本文将指导你在Mac上安装并配置svn,让你更好地管理代码版本。 安装svn 首先,我们需要从Subversion官方网站下载适合…...
数据结构----算法--五大基本算法(这里没有写分支限界法)和银行家算法
数据结构----算法–五大基本算法(这里没有写分支限界法)和银行家算法 一.贪心算法 1.什么是贪心算法 在有多个选择的时候不考虑长远的情况,只考虑眼前的这一步,在眼前这一步选择当前的最好的方案 二.分治法 1.分治的概念 分…...
【七:docken+jenkens部署】
一:腾讯云轻量服务器docker部署Jenkins https://blog.csdn.net/qq_35402057/article/details/123589493 步骤1:查询jenkins版本:docker search jenkins步骤2:拉取jenkins镜像 docker pull jenkins/jenkins:lts步骤3:…...
智能水印相机微信小程序源码
相信大家日常在生活中或者工作中都有使用过水印相机来拍照记录吧,但是又要在手机上面多下载一个APP。 那么小编今天给大家带来一款智能水印相机,拍照自动添加时间、地点、经纬度等水印文字,可用于工作考勤、学习打卡、工作取证等,…...
一、2023 CISSP认证介绍
目录 1.CISSP概况 2.CISSP考题分析 3.备考建议 1.CISSP概况 参考:...
redis 实现互相关注功能
突然想到平时的设计软件如何实现互相关注这个功能,然后查询后大致思路如下: 可以使用 Redis 数据库来存储关注关系。 在社交网络应用程序中,互相关注功能(也称为双向关注或好友关系)是一种常见的功能,允许…...
【代码随想录】算法训练营 第十一天 第五章 栈与队列 Part 2
20. 有效的括号 题目 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一…...
mysql 启动报错 Can t change dir to xxx, No such file or directory 配置错误或挂载导致
省流: 挂载的话,使用 /etc/fstab 放fstab里会在程序启动前加载NFS文件系统,放rc.local里往往造成程序启动加载时找不到路径。 正文: 在企业中,服务器重启,有时候会遇到mysql 启动报错 Cant change dir …...
AWS SAA-C03考试知识点整理
S3: 不用于数据库功能 分类: S3 Standard :以便频繁访问 S3 Standard-IA 或 S3 One Zone-IA : 不经常访问的数据 Glacier: 最低的成本归档数据 S3 Intelligent-Tiering智能分层 :存储具有不断变化或未知访问…...
HugeGraph 部署和Hubble1.0.0的数据导入Bug修复
背景 HugeGraph 安装部署了最新版本1.0.0,发现它的 Web 工具 Hubble 有一个大 Bug。数据导入的时候,配置节点属性映射这个选项时,下拉框只有一个选项,但实际上,元数据配置中的属性有3个,这个 Bug 是怎么产…...
01、字符传实现为什么是SDS而不是char*?
问题: 1. sds 是什么 ? 2. sds 相对于char * 有什么好处 ?解决了哪些疑难杂症? 3. sds 有什么不足?可以优化的点? 思考下: 平常工作开发中,我们记录一条用户信息、订单信息&…...
顺应趋势,用大数据精准营销抓住大数据时代的机遇
想先问大家一个问题:“你觉得现在的营销好做吗?”想必大多数人在说到自己如何营销这一点上,都有道不完的“苦水”。“现在找客户难,投了几十万的广告费,真正来的客户却少得可怜,平均获客成本高得吓人”一位…...
面向石油和天然气的计算机视觉和深度学习1
面向石油和天然气的计算机视觉和深度学习1 1. 好处1.1 安全1.2 生产优化与估算(Production Optimization and Estimation)1.3 降低生产和维护成本(Reduce Production and Maintenance Costs) 2. 应用2.1 维护2.1.1 预测维护&#…...
微信小程序三种授权登录以及授权登录流程讲解
🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《微信小程序开发实战》。🎯Ἲ…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

