leetcode代码记录(最长回文子串

简介: leetcode代码记录(最长回文子串

1. 题目:

给你一个字符串 s,找到 s 中最长的回文子串

如果字符串的反序与原始字符串相同,则该字符串称为回文字符串

示例 1:

输入:s = “babad”

输出:“bab”

解释:“aba” 同样是符合题意的答案。

示例 2:

输入:s = “cbbd”

输出:“bb”

2. 我的代码:

class Solution:
    def longestPalindrome(self, s: str) -> str:
        result_len = 0
        result = ""
        # 左右指针 从中间向左右扩散(问题在于,回文串可能是奇数,也可能是偶数
        # 奇数
        for i in range(len(s)):
            result_len_i = 1

            left_p = i - 1
            right_p = i + 1
            while left_p >= 0 and right_p <= len(s) - 1:
                if s[left_p] == s[right_p]:
                    result_len_i += 2

                    left_p -= 1
                    right_p += 1
                else:
                    break
            
            if result_len_i > result_len:
                result_len = result_len_i
                result = s[left_p + 1: right_p]

        # 偶数
        for i in range(len(s) - 1):
            result_len_i = 0

            left_p = i
            right_p = i + 1
            while left_p >= 0 and right_p <= len(s) - 1:
                if s[left_p] == s[right_p]:
                    result_len_i += 2

                    left_p -= 1
                    right_p += 1
                else:
                    break
            
            if result_len_i > result_len:
                result_len = result_len_i
                result = s[left_p + 1: right_p]

        return result

如果当前回文子串的长度能比目前最长的回文子串长,则记录一下。

目录
相关文章
|
2月前
|
Python
【Leetcode刷题Python】5. 最长回文子串
LeetCode 5题 "最长回文子串" 的Python解决方案,使用动态规划算法找出给定字符串中的最长回文子串。
35 3
|
2月前
|
算法
LeetCode第5题最长回文子串
该文章介绍了 LeetCode 第 5 题最长回文子串的解法,通过分析回文子串的特点,使用动态规划的思想,用二维数组记录字符串是否为回文串,从后往前遍历找子串,减少重复判断,最终找到最长回文子串,并总结了解题时通过举例推导找规律的思路。
LeetCode第5题最长回文子串
|
4月前
力扣-2029-石子游戏-‘屎山’代码
力扣-2029-石子游戏-‘屎山’代码
35 3
|
4月前
|
存储 算法 Java
【经典算法】LeetCode 5: 最长回文子串(Java/C/Python3实现含注释说明,Medium)
【经典算法】LeetCode 5: 最长回文子串(Java/C/Python3实现含注释说明,Medium)
37 2
|
5月前
|
算法
leetcode代码记录(全排列 II
leetcode代码记录(全排列 II
38 4
|
5月前
|
算法
leetcode代码记录(寻找两个正序数组的中位数
leetcode代码记录(寻找两个正序数组的中位数
38 2
|
5月前
|
算法
leetcode代码记录(全排列
leetcode代码记录(全排列
40 1
|
5月前
|
索引
leetcode代码记录(Z 字形变换
leetcode代码记录(Z 字形变换
36 1
|
5月前
leetcode代码记录(回文数
leetcode代码记录(回文数
33 1
|
4月前
dp表,哈希表,力扣5.最长回文子串力扣1745.分割回文串IV力扣132.分割回文串II优先级队列(堆)是什么下面是手动实现小根堆力扣1046.最后一块石头的重量
dp表,哈希表,力扣5.最长回文子串力扣1745.分割回文串IV力扣132.分割回文串II优先级队列(堆)是什么下面是手动实现小根堆力扣1046.最后一块石头的重量