leetcode647回文子串刷题打卡
创始人
2024-03-15 00:14:59
0

647. 回文子串 - 力扣(Leetcode)

给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。

回文字符串 是正着读和倒过来读一样的字符串。

子字符串 是字符串中的由连续字符组成的一个序列。

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

示例 1:

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

示例 2:

输入:s = "aaa"
输出:6
解释:6个回文子串: "a", "a", "a", "aa", "aa", "aaa"

提示:

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

题解思路:

动归五步:

  • dp数组以及下标含义

    • 布尔类型的dp[i][j]:表示区间范围[i,j] (注意是左闭右闭)的子串是否是回文子串,如果是dp[i][j]true,否则为false
  • 确定递推公式

    • 两种情况
      • s[i] == s[j]
        • 查看ij的距离
          • 如果是<=1则说明是回文(a, aa),dp[i][j] = true
          • 如果>=2则还需要看[i + 1, j - 1]的子序列是不是回文,如果是则dp[i][j] = true
      • s[i] != s[j]
        • 直接按照不是回文处理
  • dp初始化

    • 一开始全部初始化为false,表示还没有开始匹配
  • 遍历顺序 为保证dp[i + 1][j - 1]都是被用到过的 所以遍历要从下到上 从左到右

    由于只会遍历上三角,则j的索引从i开始

    for(int i = s.size() - 1; i >= 0; i--)for(int j = i; j < s.size(); j++)
    

完整代码

class Solution {
public:int countSubstrings(string s) {// dp数组的定义    // 布尔类型的dp[i][j]:表示区间范围[i,j] (注意是左闭右闭)的子串是否是回文子串,如果是dp[i][j]为true,否则为false。vector > dp(s.size(), vector(s.size(), false));// 确定递推公式// s[i] == s[j]// i与j相等或者相差1  直接赋true// i与j相差2及以上  查看dp[i + 1][j - 1]是否为true// s[i] != s[j]// dp[i][j] = false;// 初始化int result = 0;// 遍历顺序 为保证dp[i + 1][j - 1]都是被用到过的  所以遍历要从下到上  从左到右for(int i = s.size() - 1; i >= 0; i--){for(int j = i; j < s.size(); j++){if(s[i] == s[j]){if(j - i <= 1){result++;dp[i][j] = true;}else if(dp[i + 1][j - 1]){result++;dp[i][j] = true;}}}}return result;}
};

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...