【算法|动态规划No.25】leetcode LCR 020. 回文子串

news2024/11/18 17:52:00

个人主页:兜里有颗棉花糖
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创
收录于专栏【手撕算法系列专栏】【LeetCode】
🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望对大家有所帮助
🍓希望我们一起努力、成长,共同进步。
在这里插入图片描述

重点放前面:虽然动态规划并不是本题目的最优解法,但是如果动态规划的方法能够将所有子串是否是回文的信息保存在dp表中。因此也能为其它回文串问题提供一些思路。所以大家一定要好好重视本题目。

点击直接跳转到该题目

目录

  • 1️⃣题目描述
  • 2️⃣题目解析
  • 3️⃣解题代码

1️⃣题目描述

给定一个字符串 s ,请计算这个字符串中有多少个回文子字符串。

具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。

示例1:

输入:s = “abc”
输出:3
解释:三个回文子串: “a”, “b”, “c”

示例2:

输入:s = “abc”
输出:3
解释:三个回文子串: “a”, “b”, “c”

注意:

  • 1 <= s.length <= 1000
  • s 由小写英文字母组成

2️⃣题目解析

状态表示:

  • dp[i][j]:表示子串[i,j]是否是回文串

状态转移方程:

  • dp[i][j] = i + 1 < j ? dp[i + 1][j - 1] : true

填表顺序:

  • 根据状态转移方程可以知道填表顺序应该是从下到上、从左到右

3️⃣解题代码

class Solution {
public:
    int countSubstrings(string s) {
        int n = s.size(),ret = 0;
        vector<vector<bool>> dp(n,vector<bool>(n));
        for(int i = n - 1;i >= 0;i--)
        {
            for(int j = i;j < n;j++)
            {

                if(s[i] == s[j])
                    dp[i][j] = i + 1 < j ? dp[i + 1][j - 1] : true;
                if(dp[i][j]) ret++;
            }
        }
        return ret;
    }
};

最后就是通过啦!!!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring学习笔记注解式开发(3)

Spring学习笔记&#xff08;3&#xff09; 一、Bean的注解式开发1.1、注解开发的基本和Component1.2 注解式开发8.3、Component的三个衍生注解 二、Bean依赖注入注解开发2.1、依赖注入相关注解2.2、Autowired扩展 三、非自定义Bean注解开发四、Bean配置类的注解开发五、Spring注…

编译安装Nginx+GeoIP2自动更新+防盗链+防爬虫+限制访问速度+限制连接数

此文章是Nginx的GeoIP2模块和MaxMind国家IP库相互结合&#xff0c;达到客户端IP访问的一个数据记录以及分析&#xff0c;同时还针对一些业务需求做出对Nginx中间件的控制&#xff0c;如&#xff1a;防盗链、防爬虫、限制访问速度、限制连接数等 该篇文章是从一个热爱搞技术的博…

TSINGSEE智慧加油站可视化监管与风险预警方案

一、方案背景 加油站属于危化品行业&#xff0c;如何在日常加油卸油作业过程中保障人员、财产安全是重中之重。国内加油站日常管理主要依靠人为管控、监控摄像头监督及人工巡检等方式&#xff0c;管控手段存在低效性和滞后性&#xff0c;迫切需要将人工智能、物联网、大数据等…

07-React-redux和redux的使用

07.react-redux和redux的使用 1.redux的使用 1).redux的理解 a.redux是什么 redux是一个专门用于做状态管理的JS库(不是react插件库)。它可以用在react, angular, vue等项目中, 但基本与react配合使用。作用: 集中式管理react应用中多个组件共享的状态。 b.什么情况下需要使…

时间序列预测 | LightTS轻量采样的MLP结构网络用于多变量时间序列预测

首先,假设输入的时序维度为[B, T, N],作者便做了2种采样: 连续采样:侧重于捕获短期局部模式。 间隔采样:侧重于捕获长期依赖性。 如下图所示,很好理解,新的数据维度为[B, C, T/C, N],N代表时序的数量。 注意:论文上IEBlockC是直接出预测结果,但代码上,如上图红色标注…

【练习题】一.线性表

1.将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表《存储空间,不另外占用其他的存储空间。表中不允许有重复的数据。 2.将两个非递减的有序链表合并为一个非递增的有序链表。要求结果链表仍使用原来两个表的存储空间,不另外占用其他的存储空间…

计算机缺失d3dcompiler_47.dll解决方案,如何修复电脑缺失d3d文件

在计算机系统中&#xff0c;DLL文件&#xff08;动态链接库&#xff09;是一种重要的共享库&#xff0c;它包含了可被多个程序使用的代码和数据。然而&#xff0c;当某些DLL文件丢失或损坏时&#xff0c;可能会导致程序无法正常运行。本文将介绍四种解决D3DCompiler_47.dll缺失…

Adobe Audition 2024: 音频处理的未来,今天就在您的指尖

随着科技的飞速发展和人们对音频质量要求的不断提高&#xff0c;Adobe Audition 2024 (Au2024) 已经成为音频处理领域的领军者。这款强大的软件将为您的音频带来革命性的改变&#xff0c;让您的创作如虎添翼。 在Adobe Audition 2024中&#xff0c;用户可以体验到全新的界面设…

业内专业人士揭秘:双11即将来临,挑选SSD硬盘避坑指南

再过几天&#xff0c;各大电商的双11狂欢季。同时&#xff0c;随着存储产品涨价潮也在磨刀霍霍&#xff0c;这个双11可能是未来1年最合适买硬盘的窗口期。 小编从购物网站的价格趋势变化来看&#xff0c;已经有厂商按耐不住开始涨价了&#xff0c;NAND原厂的SSD价格相对较平稳。…

伊朗相关的OilRig组织在为期8个月的网络攻击中针对中东政府

导语 伊朗相关的OilRig组织最近在中东政府中展开了一场长达8个月的网络攻击行动。这次攻击导致了文件和密码的被窃取&#xff0c;并且在其中一次攻击中&#xff0c;攻击者还使用了一种名为PowerExchange的PowerShell后门。据Symantec的威胁猎人团队称&#xff0c;他们在一份与T…

Vue中 使用 Scss 实现配置、切换主题

1. 样式文件目录介绍 本项目中的公共样式文件均位于 src/assets/css 目录下&#xff0c;其中 index.scss是总的样式文件的汇总入口 &#xff0c;common.scss 是供全局使用的一些基本样式(常量&#xff09;&#xff0c; _theme.scss、_handle.scss 两个文件是进行主题颜色配置的…

ArcGIS笔记11_提取栅格中的数据到点要素

本文目录 前言Step 1 准备好点要素和栅格文件Step 2 多值提取到点 前言 很多时候需要将栅格中的数据提取到点要素&#xff0c;让点获取到栅格文件对应坐标所包含的数据&#xff0c;本博文主要介绍这个操作。 Step 1 准备好点要素和栅格文件 如下图所示&#xff1a; Step 2 多…

JAVA基础(JAVA SE)学习笔记(六)面向对象编程(基础)

前言 1. 学习视频&#xff1a; 尚硅谷Java零基础全套视频教程(宋红康2023版&#xff0c;java入门自学必备)_哔哩哔哩_bilibili 2023最新Java学习路线 - 哔哩哔哩 第二阶段&#xff1a;Java面向对象编程 6.面向对象编程&#xff08;基础&#xff09; 7.面向对象编程&…

代码随想录算法训练营第五十五天 | 300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

300.最长递增子序列 视频讲解&#xff1a;动态规划之子序列问题&#xff0c;元素不连续&#xff01;| LeetCode&#xff1a;300.最长递增子序列_哔哩哔哩_bilibili 代码随想录 &#xff08;1&#xff09;代码 674. 最长连续递增序列 视频讲解&#xff1a;动态规划之子序列问题…

零基础制作预约小程序,微信小程序预约服务指南

随着互联网的发展&#xff0c;越来越多的服务开始转移到线上。预约服务也是其中之一。通过微信小程序&#xff0c;商家可以提供更加便捷的预约服务&#xff0c;让客户随时随地预约商品或服务。本文将介绍如何零基础制作预约小程序&#xff0c;包括使用第三方制作平台、选择合适…

QT学习day4

作业&#xff1a;做一个闹钟 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//给定时器指针实例化一个对象timer new QTimer(this);//给语音播报者实例化一个…

计算机基础知识36

数据库数据的演变史 ATM&#xff1a;1. 把数据都存在了文件中&#xff0c;文件名不规范 kevin|123 kevin123 kevin*123 2. 存储数据的文件越来越多&#xff0c;放在db文件夹&#xff0c;占用空间&#xff0c;查询存储不方便&#xff0c;速度慢 # 数据库软件能解…

【C语言必知必会 | 子系列第六篇】深入剖析循环结构(2)

引言 C语言是一门面向过程的、抽象化的通用程序设计语言&#xff0c;广泛应用于底层开发。它在编程语言中具有举足轻重的地位。 此文为【C语言必知必会】第六篇&#xff0c;基于进行C语言循环结构的编程题专项练习&#xff0c;结合专题优质题目&#xff0c;带领读者从0开始&…

代码随想录算法训练营第五十六天 | 1143.最长公共子序列、1035.不相交的线 、53. 最大子序和 动态规划

1143.最长公共子序列 视频讲解&#xff1a;动态规划子序列问题经典题目 | LeetCode&#xff1a;1143.最长公共子序列_哔哩哔哩_bilibili 代码随想录 &#xff08;1&#xff09;代码 1035.不相交的线 视频讲解&#xff1a;动态规划之子序列问题&#xff0c;换汤不换药 | Leet…

OLED显示图片

前言 本文主要介绍了使用单片机如何在Oled12864上显示图片,以及相关的注意事项,若文章有不当之处,欢迎在评论区交流讨论.(又水了一篇文章~) 图像取模 打开Img2Lcd软件,然后载入目标jpg图片 按照图片上面的选项设置 输出数据类型:C语言数组扫描模式: 数据水平,字节垂直(列行…