灵光 LeetCode 5.最长回文子串 Python3实现

发布时间:2026/10/17 10:20:11
灵光    LeetCode 5.最长回文子串 Python3实现 最长回文子串LeetCode 第 5 题经典动态规划问题时间复杂度 O(n²)空间复杂度可优化至 O(1)。Python3 实现class Solution:def longestPalindrome(self, s: str) - str:if not s or len(s) 1:return start, end 0, 0for i in range(len(s)):len1 self.expandAroundCenter(s, i, i)len2 self.expandAroundCenter(s, i, i 1)max_len max(len1, len2)if max_len end - start:start i - (max_len - 1) // 2end i max_len // 2return s[start:end1]def expandAroundCenter(self, s: str, left: int, right: int) - int:while left 0 and right len(s) and s[left] s[right]:left - 1right 1return right - left - 1核心思路采用中心扩展法遍历每个字符作为回文中心向两边扩展寻找最长回文。需要处理两种中心情况奇数长度单个字符为中心和偶数长度两个相同字符为中心。时间复杂度O(n²)空间复杂度O(1)关键步骤1遍历字符串每个位置作为潜在回文中心。2分别以单个字符为中心奇数长度和相邻字符为中心偶数长度向两侧扩展。3比较两种扩展方式得到的回文长度取较大者更新全局最长回文区间。4根据最大长度计算起始和结束索引返回子串。示例验证输入babad输出bab或aba均为正确答案存在多个最长回文时返回任意一个即可。测试用例1sol Solution()2print(sol.longestPalindrome(babad)) # 输出: bab 或 aba3print(sol.longestPalindrome(cbbd)) # 输出: bb4print(sol.longestPalindrome(a)) # 输出: a

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询