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

leetcode-647. 回文子串

题目描述

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

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

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

示例 1:

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

示例 2:

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

思路

动态规划,参考:代码随想录

1)dp数组含义:下标i到j,是否为回文子串;初始化:False【一个二维数组】

2)在确定递推公式时,就要分析如下几种情况。

     整体上是两种,就是s[i]与s[j]相等,s[i]与s[j]不相等这两种。

     当s[i]与s[j]不相等,那没啥好说的了,dp[i][j]一定是false。

     当s[i]与s[j]相等时,这就复杂一些了,有如下三种情况

  • 情况一:下标i 与 j相同,同一个字符例如a,当然是回文子串
  • 情况二:下标i 与 j相差为1,例如aa,也是回文子串
  • 情况三:下标:i 与 j相差大于1的时候,例如cabac,此时s[i]与s[j]已经相同了,我们看i到j区间是不是回文子串就看aba是不是回文就可以了,那么aba的区间就是 i+1 与 j-1区间,这个区间是不是回文就看dp[i + 1][j - 1]是否为true。

PS:情况一和二可以合并

3)遍历顺序:一定要从下到上,从左到右遍历,这样保证dp[i + 1][j - 1]都是经过计算的

class Solution(object):def countSubstrings(self, s):""":type s: str:rtype: int"""dp = [[False] * len(s) for _ in range(len(s))]res = 0for i in range(len(s)-1, -1, -1):for j in range(i, len(s)):if s[i] == s[j]:if j-i<=1:res+=1dp[i][j] = Trueelif dp[i+1][j-1]:res+=1dp[i][j] = Truereturn resif __name__ == '__main__':s = Solution()ss = "cbabc"print(s.countSubstrings(ss))

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Linux相关概念和重要知识点(2)(用户、文件和目录、inode、权限)
  • 制证书、制电子印章、签章 -- 演示程序说明
  • 关系型数据库 - MySQL I
  • 短剧市场快速发展,短剧APP成为了新的商业机遇
  • 价值流案例研究:实战经验与成功实践的深度解析
  • 持续基础怎么搞?Jenkins+Docker+Git实战
  • 解决Win10版Township进度保存问题
  • [linux]GCC G++官方源码国内下载地址汇总
  • 二进制方式安装Helm
  • Unity+LeapMotion2的使用
  • 供应链一件代发系统开发 S2B2b2C系统的设计方案
  • 大三大四
  • 智能体 vs AI智能体:区别与联系,一文读懂!
  • JeecgBoot自定义多选组件JCheckBtnGroup
  • Redis 的标准使用规范之数据类型使用规范
  • @jsonView过滤属性
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【RocksDB】TransactionDB源码分析
  • Android 控件背景颜色处理
  • ES6--对象的扩展
  • js继承的实现方法
  • spring boot下thymeleaf全局静态变量配置
  • SQLServer之索引简介
  • Vue组件定义
  • 动态魔术使用DBMS_SQL
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 分布式事物理论与实践
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 工程优化暨babel升级小记
  • 排序算法学习笔记
  • 前端之React实战:创建跨平台的项目架构
  • 强力优化Rancher k8s中国区的使用体验
  • 驱动程序原理
  • 使用SAX解析XML
  • 王永庆:技术创新改变教育未来
  • 与 ConTeXt MkIV 官方文档的接驳
  • 转载:[译] 内容加速黑科技趣谈
  • 《天龙八部3D》Unity技术方案揭秘
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 数据可视化之下发图实践
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • #数学建模# 线性规划问题的Matlab求解
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (C语言)逆序输出字符串
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (Windows环境)FFMPEG编译,包含编译x264以及x265
  • (笔试题)合法字符串
  • (附源码)springboot教学评价 毕业设计 641310
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (蓝桥杯每日一题)love
  • (论文阅读30/100)Convolutional Pose Machines
  • (南京观海微电子)——I3C协议介绍
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (区间dp) (经典例题) 石子合并