回文子串—leetcode647
给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。
具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。
示例 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相关推荐
- leetcode647. 回文子串(动态规划)
给定一个字符串,你的任务是计算这个字符串中有多少个回文子串. 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串. 示例 1: 输入: "abc" 输 ...
- leetcode647 回文子串
给定一个字符串,你的任务是计算这个字符串中有多少个回文子串. 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串. 示例 1: 输入: "abc" 输 ...
- leetcode--最长回文子串--python
文章目录 题目 题目详情 示例 解题思路 思路 代码 运行结果 最佳方案 题目 题目详情 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 输入: &qu ...
- 刻意练习:LeetCode实战 -- Task17. 最长回文子串
背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法(Leetcode)刻意练习训练营 的打卡任务.本期训练营采用分类别练习的模式,即选择了五个知识点(数组.链表.字符串.树.贪心算法),每个知 ...
- LeetCode实战:最长回文子串
题目英文 Given a string s, find the longest palindromic substring in s. You may assume that the maximum ...
- leetcode 5 :Longest Palindromic Substring 找出最长回文子串
题目: Given a string S, find the longest palindromic substring in S. You may assume that the maximum l ...
- HDU 1544 Palindromes(回文子串)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1544 问题分析: 问题要求求出字符串的连续子串中的回文子串个数.首先,需要区分连续子串与子序列的区别. ...
- LeetCode 5 最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为1000. 示例 1: 输入: "babad" 输出: "bab" 注意: &quo ...
- python【力扣LeetCode算法题库】5- 最长回文子串
5. 最长回文子串 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: "bab&quo ...
最新文章
- esp32cam与下载板的实际有效接线图
- 笔记-信息系统开发基础-软件测试-灰度测试
- 第15章习题解答(一)——《x86汇编语言:从实模式到保护模式》读书笔记40
- 1035 插入与归并 (25 分)(c++)
- 文献记录(part37)--A two-stage hybrid ant colony optimization for high-dimensional feature selection
- 数据可视化大屏设计经验分享 【进阶篇】
- 计算机科学与技术导论%1计算机网络,汕头大学计算机专业课程计划
- Juniper防火墙的日志记录一个的问题
- 1020 月饼 (25 分)—PAT (Basic Level) Practice (中文)
- Exchange Server 2013安装部署初体验
- 按键精灵手机助手之实战篇(四)项目源码
- java gson解析json_Gson解析json数据(转)
- matlab实现傅立叶变换6,实验六傅里叶变换及其反变换
- 纵享丝滑滑动切换的周月日历,水滴效果,可高度定制,仿小米日历
- zabbix报警 High swap space usage ( less than 50% free) 解决方案
- web day2 作业
- 请不要 “妖魔化” 外包
- 【Python学习】导入类
- 迅为i.MX6ULL终结者Linux中断实验运行测试
- AcWing 1117 单词接龙
热门文章
- 怎样分组教学计算机学生才有兴趣,学生计算机论文,关于如何激发职业中专学生学习计算机的兴趣相关参考文献资料-免费论文范文...
- TCP/IP协议 和 如何实现 互联网上点对点的通信
- C#委托的定义 以及使用方式详解,更简单的理解委托。
- 诗歌rails 之with_options
- [转]树结构表递归查询在ORACLE和MSSQL中的实现方法
- Windows下安装并设置Redis
- SwiftUI之深入解析高级动画的几何效果GeometryEffect
- 2018/Province_Java_A/1/分数
- 696. Count Binary Substrings 计数二进制子串
- 超详细的HTTP面试题