647. 回文子串

题意:
  • 任意给定一个字符串,计算这个字符串的回文子串个数
解法1(暴力法)

思路:

  • 默认回文子串初始个数为字符串长度
  • 从子串长度为2—母串长度:找出所有的子串startIndex和endIndex
  • 判断子串是否是回文串,是的话count++
class Solution {public int countSubstrings(String s) {// 子串长度int length = 2;// 计数回文子串,默认任意一个字符串的回文子串个数自少等于其长度int count = s.length();while (length <= s.length()) {for(int startIndex = 0; startIndex < s.length(); startIndex++) {int endIndex;if ((endIndex = startIndex + length -1) > s.length() - 1) break;if(isPalindromic(s.substring(startIndex,endIndex + 1))) {count++;}}length++;}return count;}public static boolean isPalindromic(String s) {return s.equals(new StringBuffer(s).reverse().toString());}
}
收获
  • String类中的截取子串substring(int beginIndex, int endIndex)范围是左闭右开

  • 判断一个字符串是否是回文串,只需要看它翻转后与原串是否一样

  • 这种暴力法求出所有子串的情况的思路:

    (1) 两层循环
    (2) 最外层循环:改变子串长度

    (3) 第二层循环:子串左顶点(startIndex)从左往右移动,右顶点 (endIndex)=startIndex + 子串长度 - 1,只要右顶点超过母串范围就退出这层循环
    (4) startIndex和endIndex之间的串即为所有可能的子串情况

LeetCode 647. 回文子串 (动态规划)相关推荐

  1. 122. Leetcode 647. 回文子串 (动态规划-子序列问题)

    步骤一.确定状态: 确定dp数组及下标含义 dp[i][j] 表示的是区间范围[i,j] 的子串是否是回文子串 步骤二.推断状态方程: 在确定递推公式时,就要分析如下几种情况. 整体上是两种,就是s[ ...

  2. leetcode - 647. 回文子串

    647. 回文子串 ------------------------------------------ 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串.具有不同开始位置或结束位置的子串, ...

  3. 《leetcode : 647. 回文子串 思考分析双指针解法》

    647. 回文子串 如何确定是回文串: 找中心然后往两边扩散,判断是否对称即可. 在遍历中心点的时候,注意中心点可以是一个元素也可以是两个元素. class Solution {public:int ...

  4. Java实现 LeetCode 647 回文子串(暴力)

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

  5. LeetCode 647. 回文子串(DP/中心扩展)

    文章目录 1. 题目 2. 解题 2.1 动态规划 2.2 中心扩展法 1. 题目 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串. 具有不同开始位置或结束位置的子串,即使是由相同的字符组 ...

  6. Leetcode 647.回文子串

    Time: 20190905 Type: Medium 题目描述 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串. 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不 ...

  7. LeetCode 647 回文子串

    题目链接:力扣 思路:动态规划 dp[i][j]表示s下标[i:j]的子串是否是回文串,问题转化为只要遍历dp数组,统计true的个数 确定边界情况: ●当i=j时,dp[i][i]表示s下标i到i的 ...

  8. python回文子串_LeetCode 647. 回文子串 | Python

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

  9. 代码随想录补打卡 647 回文子串 516 最长回文子序列

    647 回文子串 代码如下 func countSubstrings(s string) int {    //dp[i][j]数组的含义是i-j这个范围的元素是否为回文串 dp := make([] ...

最新文章

  1. 帝豪gs车机系统wince_吉利新款帝豪GS,内饰升级大双屏,还不涨价,7万多就能买...
  2. led灯条维修_常见的LED透明屏型号规格,影响LED透明屏价格因素
  3. 二十万字C/C++、嵌入式软开面试题全集宝典六
  4. markdowndd
  5. jQuery.ready() 函数详解
  6. 程序填充(指针):3数排序_排序算法之快速排序,它为什么这么快?
  7. 力扣-102. 二叉树的层序遍历
  8. 深入浅出的理解频谱泄露
  9. 小米4c android5.1,奇兔刷机全网独家攻破小米4c安卓5.1支持一键刷机ROOT
  10. 2020十大高薪岗位出炉,程序员霸榜
  11. altera Cyclone V再认识
  12. nosqlbooster 延长试用日期
  13. 高盛报告:长远看中国网游前景不如门户
  14. 2022“美亚杯”第八届中国电子数据取证大赛-团队赛题目
  15. 2023 最新 抖音AI换脸表情包小程序变现玩法项目
  16. 算法很美 将整数的奇偶位互换
  17. 【数据结构】7-1 软硬车厢交替排列 (13 分)
  18. [SHOI2008]小约翰的游戏John(博弈+SJ定理)
  19. SR(稀疏表示)人脸识别
  20. 中国手术标记笔市场趋势报告、技术动态创新及市场预测

热门文章

  1. java中的过滤器与监听器
  2. codeforces C. Sonya and Problem Wihtout a Legend(dp or 思维)
  3. Codeforces Round #249 (Div. 2) (模拟)
  4. 在delphi原有控件基础上画图
  5. go-基础知识二-数据类型-变量
  6. [数据结构与算法] (顺序)线性表简单demo程序
  7. 网络协议从入门到底层原理(2)路由、网络常见概念(因特网, ISP, 接口, 上网方式)、公网私网、NAT
  8. SELinux系列(二)——SELinux有什么作用
  9. Linux 搜索 查找find命令 详解
  10. android随机抽奖代码_用Excel实现不放回随机抽样