给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。

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

示例 1:

输入:"abc"
输出:3
解释:三个回文子串: "a", "b", "c"
示例 2:

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

提示:

输入的字符串长度不会超过 1000 。

思路:中心点思想,一个+两个为中心点的情况一共由len+len-1种,这两种情况可以共用一套代码,比较简洁。

class Solution {
public:int countSubstrings(string s) {int len = s.length();int result = 0;for(int i=0;i<2*len-1;++i){int start = i>>1;int end = start + i%2;while(start>=0 && end<len && s[start]==s[end]){result++;start--;end++;}}return result;}
};

思路二:动态规划,要注意i-j<2时,也就是一个或者两个字符情况下,只要满足s[i]==s[j]说明是回文,可以理解为动态规划问题边界条件的初始化,其他情况依靠递推关系解决

class Solution {
public:int countSubstrings(string s) {int len = s.length();int result = 0;bool** dp = new bool*[len];for(int i=0;i<len;++i)dp[i] = new bool[len];for(int i=0;i<len;++i){for(int j=0;j<=i;++j){dp[j][i] = ((s[j]==s[i]) && ((i-j<2)||dp[j+1][i-1]==true));if(dp[j][i]==true)result++;}}return result;}
};

回文子串—leetcode647相关推荐

  1. leetcode647. 回文子串(动态规划)

    给定一个字符串,你的任务是计算这个字符串中有多少个回文子串. 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串. 示例 1: 输入: "abc" 输 ...

  2. leetcode647 回文子串

    给定一个字符串,你的任务是计算这个字符串中有多少个回文子串. 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串. 示例 1: 输入: "abc" 输 ...

  3. leetcode--最长回文子串--python

    文章目录 题目 题目详情 示例 解题思路 思路 代码 运行结果 最佳方案 题目 题目详情 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 输入: &qu ...

  4. 刻意练习:LeetCode实战 -- Task17. 最长回文子串

    背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法(Leetcode)刻意练习训练营 的打卡任务.本期训练营采用分类别练习的模式,即选择了五个知识点(数组.链表.字符串.树.贪心算法),每个知 ...

  5. LeetCode实战:最长回文子串

    题目英文 Given a string s, find the longest palindromic substring in s. You may assume that the maximum ...

  6. leetcode 5 :Longest Palindromic Substring 找出最长回文子串

    题目: Given a string S, find the longest palindromic substring in S. You may assume that the maximum l ...

  7. HDU 1544 Palindromes(回文子串)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1544 问题分析: 问题要求求出字符串的连续子串中的回文子串个数.首先,需要区分连续子串与子序列的区别. ...

  8. LeetCode 5 最长回文子串

    给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为1000. 示例 1: 输入: "babad" 输出: "bab" 注意: &quo ...

  9. python【力扣LeetCode算法题库】5- 最长回文子串

    5. 最长回文子串 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: "bab&quo ...

最新文章

  1. esp32cam与下载板的实际有效接线图
  2. 笔记-信息系统开发基础-软件测试-灰度测试
  3. 第15章习题解答(一)——《x86汇编语言:从实模式到保护模式》读书笔记40
  4. 1035 插入与归并 (25 分)(c++)
  5. 文献记录(part37)--A two-stage hybrid ant colony optimization for high-dimensional feature selection
  6. 数据可视化大屏设计经验分享 【进阶篇】
  7. 计算机科学与技术导论%1计算机网络,汕头大学计算机专业课程计划
  8. Juniper防火墙的日志记录一个的问题
  9. 1020 月饼 (25 分)—PAT (Basic Level) Practice (中文)
  10. Exchange Server 2013安装部署初体验
  11. 按键精灵手机助手之实战篇(四)项目源码
  12. java gson解析json_Gson解析json数据(转)
  13. matlab实现傅立叶变换6,实验六傅里叶变换及其反变换
  14. 纵享丝滑滑动切换的周月日历,水滴效果,可高度定制,仿小米日历
  15. zabbix报警 High swap space usage ( less than 50% free) 解决方案
  16. web day2 作业
  17. 请不要 “妖魔化” 外包
  18. 【Python学习】导入类
  19. 迅为i.MX6ULL终结者Linux中断实验运行测试
  20. AcWing 1117 单词接龙

热门文章

  1. 怎样分组教学计算机学生才有兴趣,学生计算机论文,关于如何激发职业中专学生学习计算机的兴趣相关参考文献资料-免费论文范文...
  2. TCP/IP协议 和 如何实现 互联网上点对点的通信
  3. C#委托的定义 以及使用方式详解,更简单的理解委托。
  4. 诗歌rails 之with_options
  5. [转]树结构表递归查询在ORACLE和MSSQL中的实现方法
  6. Windows下安装并设置Redis
  7. SwiftUI之深入解析高级动画的几何效果GeometryEffect
  8. 2018/Province_Java_A/1/分数
  9. 696. Count Binary Substrings 计数二进制子串
  10. 超详细的HTTP面试题