leetcode - 647. 回文子串
647. 回文子串
——————————————————————————————————————————
给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。
示例 1:
输入: “abc”
输出: 3
解释: 三个回文子串: “a”, “b”, “c”.
示例 2:
输入: “aaa”
输出: 6
说明: 6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”.
注意:输入的字符串长度不会超过1000。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/palindromic-substrings
——————————————————————————————————————————
1、遍历法
从第一个点开始遍历,以一个点为中心,同时向左和向右进行比较,如果相等,则回文子串个数+1。另一种情况是以两个点为中心,然后同时向左和向右进行比较,如果相等,则回文子串个数+1。具体的C++代码如下:
class Solution {
public:int countSubstrings(string s) {int length = s.size();int num=0;for(int i=0;i<length;i++){int j=i; #以一个点为中心进行比较int k=i;while((j>=0) && (k<length) && (s[j]==s[k])){num = num + 1;j--;k++;}}for(int i=0;i<length;i++){int j=i; #以两个点为中心进行比较int k=i+1;while(j>=0 && k<length && s[j]==s[k]){num = num + 1;j--;k++;}}return num;}
};
leetcode - 647. 回文子串相关推荐
- 《leetcode : 647. 回文子串 思考分析双指针解法》
647. 回文子串 如何确定是回文串: 找中心然后往两边扩散,判断是否对称即可. 在遍历中心点的时候,注意中心点可以是一个元素也可以是两个元素. class Solution {public:int ...
- LeetCode 647. 回文子串 (动态规划)
647. 回文子串 题意: 任意给定一个字符串,计算这个字符串的回文子串个数 解法1(暴力法) 思路: 默认回文子串初始个数为字符串长度 从子串长度为2-母串长度:找出所有的子串startIndex和 ...
- Java实现 LeetCode 647 回文子串(暴力)
647. 回文子串 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串. 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串. 示例 1: 输入: "a ...
- LeetCode 647. 回文子串(DP/中心扩展)
文章目录 1. 题目 2. 解题 2.1 动态规划 2.2 中心扩展法 1. 题目 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串. 具有不同开始位置或结束位置的子串,即使是由相同的字符组 ...
- Leetcode 647.回文子串
Time: 20190905 Type: Medium 题目描述 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串. 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不 ...
- 122. Leetcode 647. 回文子串 (动态规划-子序列问题)
步骤一.确定状态: 确定dp数组及下标含义 dp[i][j] 表示的是区间范围[i,j] 的子串是否是回文子串 步骤二.推断状态方程: 在确定递推公式时,就要分析如下几种情况. 整体上是两种,就是s[ ...
- LeetCode 647 回文子串
题目链接:力扣 思路:动态规划 dp[i][j]表示s下标[i:j]的子串是否是回文串,问题转化为只要遍历dp数组,统计true的个数 确定边界情况: ●当i=j时,dp[i][i]表示s下标i到i的 ...
- 代码随想录补打卡 647 回文子串 516 最长回文子序列
647 回文子串 代码如下 func countSubstrings(s string) int { //dp[i][j]数组的含义是i-j这个范围的元素是否为回文串 dp := make([] ...
- python回文子串_LeetCode 647. 回文子串 | Python
647. 回文子串 题目 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串. 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串. 示例 1: 输入:" ...
最新文章
- MNN编译android
- CSS样式表margin和padding的区别
- RAII实现的mutex资源类
- 信息论-Shannon entropy-Kullback-Leibler (KL) divergence-cross-entropy
- Openwrt上配置Aria2迅雷离线下载步骤
- 蓝桥杯评分标准_蓝桥杯比赛要求
- 信息采集-火车采集器
- J.U.C之并发工具类:Exchanger
- DP+BIT(优化复杂度) UESTC 1217 The Battle of Chibi
- 在线预览文档简单例子
- python数据类型总结
- 计算机工程专业院校排名,法国计算机工程专业大学排名(2020年USNEWS)_快飞留学...
- Python3实现旋转数组的3种算法 1
- 纯前端导出PDF分页截取问题处理
- “ARP欺骗”木马病毒
- USB2.0接口管脚定义
- matlab 图像傅里叶逆变换,用MATLAB实现图像的傅里叶变换.ppt
- 安慕希酸奶推出草莓味了
- 双功能RGD-TAT修饰DNA纳米胶束|聚苯胺纳米线修饰DNA(PAINW/DNA)
- tp1900芯片对比7621a_MT7621A /MT7620N / MT7620A单频双频刷机教程(区别于高通芯片刷机过程)...
热门文章
- PHP加速 eAccelerator配置和使用指南
- 国内最大最全的交换技术专区上线
- Postgres-XL数据库集群在RedHat/Fedora/Oracle/CentOS平台上的搭建
- JavaScript玩转机器学习:模型和层
- Nginx使用HTTP基本身份验证限制访问
- 容器编排技术 -- Kubernetes Pod概述
- sqlserver查看表空间
- JSP+Servlet+C3P0+Mysql实现的azhuo商城
- 【Java】计算1+3+5+7+9和100以内的素数
- 【Python爬虫】Re(正则表达式)库入门