java数据结构与算法刷题-----LeetCode647. 回文子串

Leetcode Top100题目和答案(Java完整版 面试必备) 最近忙着准备春招,复习完这个又复习那个。不过还是忙里偷闲,把剑指Offer这66道题目重新刷了一遍,收获还是很大的,下面贴出答案,又不懂的可以给我留言,博主会及时解答。 我的github 准备把春招复习的知识都整理到github上,一边是自己做个总结,一边也能供大家参考 ——leetcode数据库 19道题 ——剑指Offer 66道题 以下摘自leetcode Top100精选题目 文章目录1.... 阅读详情
java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.youkuaiyun.com/grd_java/article/details/123063846

在这里插入图片描述

解题思路
  1. 直接使用中心扩展法即可。
  2. 对于其它方法,LeetCode第5题都有涉及
🏆LeetCode5:最长回文子串https://blog.youkuaiyun.com/grd_java/article/details/124666706
中心扩展法
  1. 对于不同的回文串,它的中心可能是1个字符,或者2个字符
  1. 例如abccba这样的字符串是回文串,以两个字符cc为中心
  2. abcccba这样的是以一个字符c为中心的回文串
  1. 所以我们可以从头到尾遍历字符串。然后每一次都考虑,两个字符为中心,和一个字符为中心,这两种情况来构建回文串。
  2. 确定中心后,只需要使用贪心的思想,不断扩展的比较两边。当前两边只要相等,那么整个字符串就是回文串。
  1. 例如abcccba。我们先拿到了c
  2. 然后向两边扩展比较,abcccba。我们发现两边相等。那么ccc就是一个回文串
  3. 再次向两边扩展abcccba,两边再次相等,那么bcccb就是一个回文串
  4. 再次向两边扩展abcccba两边再次相等,那么abcccba就是一个回文串
代码

在这里插入图片描述

class Solution {
    /**
        中心拓展回文串法,时间复杂度O(n^2).空间复杂度O(1)
        我们要统计所有回文串的个数,
     */
    public int countSubstrings(String s) {
        int n = s.length(), ans = 0;//n为字符串长度,ans保存有几种回文串
        char c[] = s.toCharArray();//转换为char数组
        //中心扩展法经典步骤
        for(int i = 0; i < n;i++){//从左到右依次选择字符作为中心
            //找到以i位置字符为中间的回文串。abcccba以c为中心的回文串
            ans += expandAroundCenter(c,i,i);//处理1个字符作为中心的回文串
            //找到以i和i+1位置为中心的回文字符串。例如abccba这样的字符串是回文串,cc为中心
            ans += expandAroundCenter(c,i,i+1);//处理2个字符作为中心的回文串
        }
        return ans;
    }
    //找到回文串的核心逻辑,不断进行两边的扩展比较。
    private int expandAroundCenter(char[] c,int i, int j){
        int count = 0;//回文串个数
        while(i >= 0 && j < c.length && c[i]==c[j]){//如果满足回文串
            i--;j++;//继续判断
            count++;//每个回文串都记录
        }
        return count;
    }
}
Akamai移动端Sensor数据采集与BMP风控机制深度解析 本文深度解析了Akamai在移动端风控中的核心机制,重点阐述了Sensor数据如何通过采集陀螺仪、加速度计等硬件信息,结合设备指纹生成连续且符合物理规律的行为轨迹。详细剖析了数据从采集、加密校验到通过BMP风控三重验证(校验位、时间差、数据逻辑)的完整流程,并提供了从模拟优化到自建风控模型的实用应对思路。 阅读详情

相关推荐

MTK Tunning ISP 模块面试总结

ISP面试问答

m0_72053187的博客 4540

力扣647-回文子串(Java详细题解)

回文子串全网最详细讲解,快来了解一下吧!

2302_79761426的博客 1092

GD32F303串口DMA发送数据避坑指南:为什么你的发送函数会卡住?

本文深入解析GD32F303单片机串口DMA发送数据时常见的卡死问题,提供详细的避坑指南。从DMA传输完成中断时序、发送状态管理到双通道DMA的特别注意事项,全面剖析问题根源并给出解决方案,帮助开发者构建健壮的DMA发送机制。

weixin_27038245的博客 295

647. 回文子串

这段代码是一个用于计算给定字符串中回文子串数量的解决方案。代码中定义了一个Solution类,其中包含一个countSubstrings方法,该方法接收一个字符串s作为参数,并返回回文子串的数量。这段代码利用中心扩散法来快速计算回文子串的数量,通过遍历所有可能的中心点,从中心向两边扩散,判断是否是回文串。这段代码实现了一个计算给定字符串中回文子串数量的功能。整体来说,这段代码利用了中心拓展法来统计给定字符串中的回文子串数量。这段代码通过动态规划的方法计算字符串中的回文子串数量,时间复杂度为。

Wzideng@qq.com 883

深入C6678启动流程:从BootRom参数表到多核镜像部署的完整解析

本文深入解析TMS320C6678 DSP的启动流程,从BootRom参数表到多核镜像部署的全过程。详细介绍了七种启动模式的工程选择、多核镜像构建技巧以及二级引导策略,帮助开发者掌握C6678的启动机制与调试方法,提升嵌入式系统开发效率。

weixin_30505225的博客 613

从爆仓到流畅发货:我们如何用EIQ分析给跨境小电商仓库做了一次‘体检’与‘手术’

本文分享了如何通过EIQ分析工具为跨境小电商仓库进行诊断与优化,从爆仓危机到流畅发货的实战经验。通过ABC分类法、动态路径算法等策略,拣货效率提升40%,错发率降低91%,日均处理能力翻倍。文章为小电商提供了轻量级工具选择和关键指标监控的实用建议。

weixin_28707739的博客 399

【刷题目录1】按标签刷LeetCode热题HOT100 java题解分类汇总

1.栈 2.堆 3.贪心算法 4.排序 5.位运算 6.树 7.深度优先搜索 8.广度优先搜索 9.并查集 10.图 11.设计

乾坤未定,你我皆是黑马 3466

NVIDIA GPU任务调度全景:从Block分配到Warp发射

GPU并行计算的核心是任务调度,而CUDA kernel在GPU上的执行并非简单的一次性操作,而是经过从CPU命令队列到硬件前端,再到GigaThread引擎和Warp Scheduler的多层协同。理解这一过程,是性能优化的基础。Warp作为硬件调度的基本单位,其状态切换与延迟隐藏能力直接决定计算单元的利用率;而Occupancy作为衡量SM上活跃Warp池大小的指标,也并非越高越好,需要结合访存模式与资源占用综合判断。对于多任务并发场景,Stream优先级、计算抢占、MIG硬件隔离与MPS软件共享等机制

weixin_32612263的博客 270

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

647. 回文子串 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。 示例 1: 输入: “abc” 输出: 3 解释: 三个回文子串: “a”, “b”, “c”. 示例 2: 输入: “aaa” 输出: 6 说明: 6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”. ...

南 墙 1万+

镜头像差之五——场曲

什么是场曲? 场曲[curvature of field] 物面上所有的点经过系统后,最佳焦点位置不在同一平面上,若这些像点所成的面为曲面,则称为系统有场曲。 与物高二次方、入射光瞳口径一次方成正比的像差。若仅存在场曲,则所有物平面上的点都有相应的像点,但分布在一个球面上;若采用弯成此种形状的底片,则可获得处处清晰的像。此时在理想像平面上,像点呈现为圆斑。 第一张图是最简单也是最容易理解的场曲,也就是对焦点锐利,其余部分逐渐松散,但实际上大多现代镜头的场曲都呈现为图二的形态:对焦点与边缘锐度.

camerall 1万+

FANUC机器人_CRX协作机器人的开机和示教器的初始化设置基本步骤(二)

FANUC机器人_CRX协作机器人的开机和示教器的初始化设置基本步骤

Robot_PLC_HMI_Automation 2733

leetcode刷题记录

刷题过程记录

洪肥肥的博客 2063

VMware报错系列:虚拟机配置文件(.vmx)损坏或丢失---修复

虚拟机配置文件(.vmx)损坏或丢失---修复

weixin_54626591的博客 7014

Leetcode刷题java之647. 回文子串

执行结果: 通过 显示详情 执行用时 :2 ms, 在所有 Java 提交中击败了86.30% 的用户 内存消耗 :34.5 MB, 在所有 Java 提交中击败了58.19%的用户 题目: 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。 示例 1: 输入: "abc" 输出: 3 ...

逆水行舟,不进则退 412

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

leetcode 思路——647. 回文子串

leetcode 思路——647. 回文子串 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。 示例 1: 输入: “abc” 输出: 3 解释: 三个回文子串: “a”, “b”, “c”. 示例 2: 输入: “aaa” 输出: 6 说明: 6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”. 注意: 输入的字符串长度不会超过1000。 来源:力扣(LeetCode) 链接:ht

kuanyew的博客 341

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

leetcode647 回文子串

leetcode647 回文子串 1.题目 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。 示例: 输入: “aaaba” 输出: 9 解释:”a”、”aa”、”a”、”aa”、”aaa”、”a”、”b”、”aba”、”a” 2.思路 奇回文(如 aba)和...

wjb1204的专栏 962

Leetcode647. 回文子串

在实现的时候,我们需要处理一个问题,即如何有序地枚举所有可能的回文中心,我们需要考虑回文长度是奇数和回文长度是偶数的两种情况。当然你可以做两次循环来分别枚举奇数长度和偶数长度的回文,但是我们也可以用一个循环搞定。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。,就可以得到所有可能的回文中心,这样就把奇数长度和偶数长度两种情况统一起来了。的时间检测当前的子串是否是回文,整个算法的时间复杂度是。子字符串 是字符串中的由连续字符组成的一个序列。的,对于每个回文中心拓展的次数也是。

会流泪de鱼的博客 479

LeetCode:647.回文子串

LeetCode:647.回文子串

xiaoshiguang3的博客 853

【Leetcode刷题篇】leetcode647 回文子串

给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。 示例 1: 输入:“abc” 输出:3 解释:三个回文子串: “a”, “b”, “c” 示例 2: 输入:“aaa” 输出:6 解释:6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa” 解题思路来自中心点: 比如对一个字符串 ababa,选择最中间的 a 作为中心点,往两边扩散,第一次扩散发现 left 指向的是 b.

Mind_programmonkey的博客 704

[Leetcode][第647题][JAVA][回文子串][动态规划][中心扩展][Manacher 算法]

【问题描述】[中等] 【解答思路】 1. 暴力 首先明确如何判断一个字符串是否为回文字符串。第一个字符与最后一个字符相同,第二个字符与倒数第二个字符相同…关于中心位置轴对称。 本题要求一共有多少个回文子串,那么就需要判断,索引[i, j]的子串是不是回文子串,遍历所有这样[i, j]进行判断就可以找到回文子串的总数。这是暴力的做法。 首先如何判断[i, j]的子串是回文串,根据定义来判断即可。 定义boolean isPalindrome(char[] chars, int start, int end)

dadongwudi的博客 373

可爱宝宝力扣刷题集目录

阿勒八叉

zhuruihe2014的博客 941

LeetCode第647题回文子串

题目来源 题目描述 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。 示例 1: 输入:“abc” 输出:3 解释:三个回文子串: “a”, “b”, “c” 示例 2: 输入:“aaa” 输出:6 解释:6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa” 提示: 输入的字符串长度不会超过 1000 。 代码 class Solution { int count = 0;

LiuXiaoXueer的博客 210

leetcode647——回文子串——java实现

题目要求: 分析: 这道题目跟之前做的那道回文串差不多,传送门:leetcode5——最长回文子串——java实现 这里只要多一个计数器count就可以了。 具体代码如下: class Solution { public int countSubstrings(String s) { int count = 0; for(int...

阿花的IT历程 424

【LeetCode成长之路:回文字符串运用题】 回文子串与最长回文子串

本篇文章介绍有关回文字符串两道题题解,分别为【647. 回文子串 】和【 5. 最长回文子串】, 难度均为: 中等 标签: 双指针中心扩散 动态规划,展示语言java。

未见花闻的博客 917
上一篇: java数据结构与算法刷题-----LeetCode409. 最长回文串
下一篇: java数据结构与算法刷题-----LeetCode696. 计数二进制子串
ydenergy_殷志鹏
博客等级 码龄7年 5887粉丝 543原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ydenergy_殷志鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值