尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

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

发布时间:2026/9/1 4:39:54

资讯中心
01
ARTICLE

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

灵光    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
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。