您的位置:首页 > 编程语言 > Python开发

最长回文子串(python实现)

2020-02-17 04:13 393 查看

题目描述
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
示例1

输入: "babad"
输出: "bab"
注意: "aba" 也是一个有效答案。

示例2

输入: "cbbd"
输出: "bb"

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/longest-palindromic-substring/

代码实现

class Solution:
def longestPalindrome(self, s: str) -> str:
firststr = ''
secondstr = ''
for each in range(len(s) if len(s) < 1000 else 1000):
m, n = each, each
while m >= 0 and n <= len(s) - 1 and s[m] == s[n]:
if len(firststr) <= n - m + 1: firststr = s[m:n + 1]
m -= 1
n += 1
m, n = each, each + 1
while m >= 0 and n <= len(s) - 1 and s[m] == s[n]:
if len(secondstr) <= n - m + 1: secondstr = s[m:n + 1]
m -= 1
n += 1
return firststr if len(firststr) > len(secondstr) else secondstr

运行结果

  • 点赞 1
  • 收藏
  • 分享
  • 文章举报
kkkkym 发布了4 篇原创文章 · 获赞 1 · 访问量 162 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: