96SEO 2026-06-06 13:24 19
嘿,今天咱们来聊聊那个经典的 LeetCode 第五题——Zui长回文子串。这题啊,说简单不简单,说难也不难,关键是kan你用啥方法解。
害,你要是刚接触算法,可Neng一上来就被这题给整懵了。别急,咱慢慢来。

啥叫回文子串?就是正着读反着读dou一样的字符串,比如 "aba"、"bb" 这种。注意咯,是子串,不是子序列,必须是连续的字符哦。
这题的解法主要有两种,一种是动态规划,一种是中心 法。咱一个一个说。
先说说动态规划吧,这个方法对新手友好,思路清晰,适合打基础。你懂的,动态规划嘛,就是把大问题拆成小问题,然后复用之前的结果,避免重复计算。
那咋整呢?咱定义一个二维数组 dp,表示从索引 i 到 j 的子串是不是回文。
比如字符串 "babad",我们想知道从 i 到 j 是不是回文,就得kan s 是不是等于 s,Ru果相等,还得kan中间那段是不是回文。
对头对头,就是这个意思。比如 "abcba",首尾dou是 a,中间是 "bcb",那它就是回文咯。
不过啊,这方法有个问题,空间复杂度是 O,因为要存一个二维数组。说实话,这在数据量大的时候,内存压力有点大。
那咋优化呢?别急,咱还有中心 法。
中心 法就聪明多了。你想啊,回文不就是中心对称嘛。那咱就从中间往两边扩,kankanNeng扩多远。
比如 "aba",中心是 b,往两边一扩,哎,对上了就是回文。"bb" 也一样,中心是两个 b,一扩,还是对的。
这方法的好处是啥?空间复杂度是 O 啊,不占地方,执行效率也高。在面试里这方法geng吃香,代码也geng简洁。
不过要注意咯,中心有两种:一种是奇数长度的,比如 "aba",中心是 b;另一种是偶数长度的,比如 "bb",中心是两个 b。
所以啊,咱得把所有可Neng的中心dou试一遍,奇数的有 n 个,偶数的有 n-1 个,总共 2n-1 个中心,不Neng漏掉。
那代码咋写呢?咱Ke以写个辅助函数,专门用来从中心往两边扩,返回Zui长回文的起始位置和长度。
比如从 i 扩,就是奇数长度的回文;从 i 和 i+1 扩,就是偶数长度的。扩的时候要注意边界,别越界了。
扩完之后left 和 right 就超了得回退一位,再算长度和起始位置。这个小细节别漏了。
那主函数里就简单了遍历所有中心,调用辅助函数,geng新Zui长回文的起始位置和长度。
Zui后用 substring 截取一下搞定!substring 是左闭右开,所以 end 是 start + maxLen,不用减一。
你可Neng会问,为啥要初始化所有长度为 1 的子串呢?因为单个字符肯定是回文嘛,比如 "a"、"b" 这些。
初始化完了再从长度 2 开始,慢慢往大了扩。外层循环控制长度,内层循环控制左边界,右边界就算出来了。
然后判断首尾字符相不相等,相等的话,再kan中间是不是回文。长度为 2 的直接是回文,长度大于 2 的就得kan内部子串了。
比如 "abcba",中间是 "bcb",那得是回文才行。所以啊,状态转移方程就出来了:dp = dp。
每次判断完,记得及时geng新 maxLen 和 start,别等遍历完再找,那样效率低。
Zui后说说测试用例。比如 "babad",输出 "bab" 或 "aba" dou行,dou是Zui长的。"cbbd" 就输出 "bb"。"ac" 输出 "a" 或 "c" dou行。"ccc" 输出 "ccc"。空字符串就输出空。
边界情况也得处理好,比如空字符串或单个字符,直接返回就行,别搞复杂了。
补充个小技巧:调试的时候Ke以打印 DP 数组kankan状态,或者用调试工具kan中心 的过程,加深理解。
不对不对,应该是先判断边界情况,再执行核心逻辑,避免不必要的计算。比如 n <= 1 的情况,直接返回,别进循环了。
再啰嗦一句,DP 法虽然思路清晰,但空间复杂度高,中心 法虽然高效,但得想清楚边界。两种方法dou得掌握,才Neng灵活应对。
Zui后一下:动态规划适合打基础,中心 适合实战。你要是新手,建议先从 DP 入手,理解子问题复用的思想,后面遇到Zui长回文子序列这种题,也Neng轻松应对。
害,说了这么多,你懂的,算法这东西,多练才是王道。别光kan,动手敲代码去!
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback