【LeetCode Hot 100 最长回文子串】

新年的刷的第一题,题目如下:

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

示例 1:

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

输入:s = "cbbd"
输出:"bb"
示例 3:

输入:s = "a"
输出:"a"
示例 4:

输入:s = "ac"
输出:"a"

提示:

1 <= s.length <= 1000
s 仅由数字和英文字母(大写和/或小写)组成

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-palindromic-substring
著作权归领扣网络所有。非商业转载请注明出处。

初始思路:

刚开始的想法是想每个字符开始向左右进行拓展,将全部的字符循环一遍,最后就可以找到最长的回文字符串。但自己感觉这种方法时间复杂度太高了,就没往下想了,唉,太不自信了。

答案思路:

答案写的非常详细,分了三种方法,第三种不讲,有点复杂,首先要说的是和自己初始子路类似的解法-中心扩展算法,废话不多说,直接上代码:

<,> getLongest( & s, left,(left>=&&right<s.size()&&s[left]==--++ {left+,right- longestPalindrome( start=,end=( i=;i<s.size();i++==getLongest(s,i,i+(right1-left1>end-==(right2-left2>end-== s.substr(start,end-start+

答案中介绍的第二种方法是动态规划,直接看代码:

longestPalindrome( strReturn=( len=;len<s.size();len++( i=;i<s.size()-len;i++(len=== (len==+len]=s[i]==s[i++len]=dp[i+][i+len-]&&(s[i]==s[i+(dp[i][i+len]&&len+>=s.substr(i,len+

两种算法的时间和空间复杂度对比如下:

        时间复杂度    空间复杂度

中心扩展算法:    O(n*n)                  O(1)

动态规划:   O(n*n)     O(n*n)

(0)

相关推荐

  • ​LeetCode刷题实战263:丑数

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • ​LeetCode刷题实战266:回文排列

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • ​LeetCode刷题实战201:数字范围按位与

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • ​LeetCode刷题实战187:重复的DNA序列

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • ​LeetCode刷题实战227:基本计算器 II

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • ​LeetCode刷题实战238:除自身以外数组的乘积

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • ​LeetCode刷题实战264:丑数 II

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • ​LeetCode刷题实战168:Excel表列名称

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • Python刷题:最长回文子串(字符串)

    题目描述 给定一个仅包含小写字母的字符串,求它的最长回文子串的长度.所谓回文串,指左右对称的字符串. 解题思路 当字符串不为空时,回文子串最少也是一个字符,即初始长度为1,当回文子串更长时,就可能有两 ...

  • ​LeetCode刷题实战409:最长回文串

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • leetcode刷题笔记-234. 回文链表(java实现)

    题目描述 请判断一个链表是否为回文链表. 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 来源:力扣(LeetCo ...

  • Java学习——100、判断回文字符串

    回文字符串:即字符串"从前向后读"和"从后向前读"都相同. 算法并不难,用循环,将字符串的第0个和最后一个比较,第1个和倒数第二个比较,到中间数字为止,都相等则 ...

  • 通俗易懂的最长回文串图解、说明及Java代码(中心扩散法和Manacher算法)

    通俗易懂的最长回文串图解、说明及Java代码(中心扩散法和Manacher算法)

  • LeetCode之Palindrome Number(回文数)

    LeetCode之Palindrome Number(回文数)

  • ​LeetCode刷题实战267:回文排列II

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • 面试题-python3 找出一个字符串中所有子串是回文的次数

    前言 回文是指正序(从左向右)和倒序(从右向左)读都是一样的.例如:121 ,abcdedcba,123321等都是回文 题目 这种的字符串"ABCABADCSABBAUYIIYU" ...