首页 > 其他分享 >【LeetCode】【5】最长回文子串

【LeetCode】【5】最长回文子串

时间:2024-05-25 10:26:49浏览次数:26  
标签:子串 begin max 样例 len range LeetCode dp 回文

文章目录

因上努力

个人主页:丷从心·

系列专栏:LeetCode

刷题指南:LeetCode刷题指南

果上随缘


题目描述

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

样例输入输出与解释

样例1
  • 输入:s = "babad"
  • 输出:"bab"
  • 解释:"aba"同样是符合题意的答案
样例2
  • 输入:s = "cbbd"
  • 输出:"bb"

提示

  • 1 <= s.length <= 1000
  • s仅由数字和英文字母组成

Python实现

动态规划
class Solution:
    def longestPalindrome(self, s: str) -> str:
        n = len(s)

        if n < 2:
            return s

        max_len = 1
        begin = 0

        dp = [[False] * n for _ in range(n)]
        for i in range(n):
            dp[i][i] = True

        for l in range(2, n + 1):
            for i in range(n - l + 1):
                j = l + i - 1

                if s[i] != s[j]:
                    dp[i][j] = False
                else:
                    if j - i < 3:
                        dp[i][j] = True
                    else:
                        dp[i][j] = dp[i + 1][j - 1]

                if dp[i][j] and j - i + 1 > max_len:
                    max_len = j - i + 1
                    begin = i

        return s[begin:begin + max_len]

标签:子串,begin,max,样例,len,range,LeetCode,dp,回文
From: https://blog.csdn.net/from__2024_04_11/article/details/139188623

相关文章

  • leetcode刷题
    文章目录前言两数之和1️⃣暴力for循环2️⃣解法23️⃣构建哈希表两数相加1️⃣链表→......
  • 1-数组-11-二分查找-LeetCode704
    1-数组-11-二分查找-LeetCode704参考:代码随想录LeetCode:题目序号35更多内容欢迎关注我(持续更新中,欢迎Star✨)Github:CodeZeng1998/Java-Developer-Work-Note技术公众号:CodeZeng1998(纯纯技术文)生活公众号:好锅(Lifeismorethancode)博客园:CodeZeng1998其他平台:CodeZeng19......
  • Leetcode 力扣97. 交错字符串 (抖音号:708231408)
    给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串:s=s1+s2+...+snt=t1+t2+...+tm|n-m|<=1交错 是 s1+t1+s2+t......
  • Leetcode-152 乘积最大子数组
    Leetcode-152乘积最大子数组题目描述示例1:示例2:解题思路一种错误的解题思路正确的思路(一)C++代码正确的思路(二)C++代码题目描述给你一个整数数组nums,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例1:输入:......
  • LeetCode Greatest Common Divisor of Strings All In One
    LeetCodeGreatestCommonDivisorofStringsAllInOneLeetCode1071errorsfunctiongcdOfStrings(str1:string,str2:string):string{letresult=``;lettemp=[];if(str1.length>str2.length){letreg=newRegExp(str2,'g'......
  • 5. 最长回文子串
    给你一个字符串s,找到s中最长的回文子串。示例1:输入:s="babad"输出:"bab"解释:"aba"同样是符合题意的答案。示例2:输入:s="cbbd"输出:"bb"classSolution{public:stringlongestPalindrome(strings){intn=s.size();if......
  • 【LeetCode】59. 螺旋矩阵 II
    题目:59.螺旋矩阵II解题思路手动模拟螺旋矩阵,分别实现四个方向的代码,将数组依次填入数组中即可需要注意的是,如果n为奇数,说明最后只剩下中间的一个位置,将最后一个数直接填入即可;若n为偶数,则正好能够遍历n/2遍classSolution{publicint[][]generateMatrix(intn){......
  • 5-Longest Palindromic Substring-最长回文串
    问题描述链接:https://leetcode.com/problems/longest-palindromic-substring/description/Givenastring s,return thelongest palindromicsubstringins解释:给定一个字符串,求其最长的回文串回文串:一个字符串,如果从左往右读和从左往右读读出来的序列是一样的,称......
  • [LeetCode] 1863. Sum of All Subset XOR Totals
    TheXORtotalofanarrayisdefinedasthebitwiseXORofallitselements,or0ifthearrayisempty.Forexample,theXORtotalofthearray[2,5,6]is2XOR5XOR6=1.Givenanarraynums,returnthesumofallXORtotalsforeverysubsetofnums.......
  • CSP历年复赛题-P1015 [NOIP1999 普及组] 回文数
    原题链接:https://www.luogu.com.cn/problem/P1015题意解读:一个N进制数M,把M正序和M逆序相加,几次之后得到是数是回文数,如果超过30次还无法得到回文数,输出Impossible!。解题思路:M最长100位,因此需要高精度,定义数组vector<int>m来存储整数M注意:16进制中可能存在'a~f''A~F'等字母,需......