LeetCode刷题8——最长回文子串

一、要求

二、背景

(1)回文:正反读都相同的字符串

(2)找到字符串中对应的索引

S:字符串

s:想要求索引的字符

(1) S.index(s) 只能找到第一个s对应的索引,不能求完

(2) [i for in range(len(S)) if S[i]==s]  #可以找完全部的索引

三、解题思路

1.依次取字符串中字符,找到后面与之相等的字符对应的索引,截取这段字符串并进行回文函数的判断,若新回文长度大于老回文长度,那么用新回文替换老回文

class Solution:
    def longestPalindrome(self, s: str) -> str:
        if s:
            longpalindromes=s[0]
            for i in range(len(s)):
                data= s[i+1::]
                b=s[i]
                index=[r for r in range(len(data)) if data[r] == b]
                for j in index:
                    new=self.palindrome(s[i:i+j+2])
                    if len(new)>len(longpalindromes):
                        longpalindromes=new
            return longpalindromes
        else:
            return ‘‘

    def palindrome(self,str):
        revers_str =str[::-1]
        if revers_str==str:
            return str
        else:
            return []

(2)时间复杂度很高,如何降低时间复杂度?

原文地址:https://www.cnblogs.com/bethansy/p/12080925.html

时间: 2024-07-30 13:20:24

LeetCode刷题8——最长回文子串的相关文章

LeetCode刷题-005最长回文子串

给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为1000.示例 1:输入: "babad"输出: "bab"注意: "aba"也是一个有效答案.示例 2:输入: "cbbd"输出: "bb" 1 string longestPalindrome(string s) 2 { 3 4 string str = "$#"; 5 for(int i = 0; i &l

LeetCode之“字符串”:最长回文子串

题目要求: 给出一个字符串(假设长度最长为1000),求出它的最长回文子串,你可以假定只有一个满足条件的最长回文串.例如,给出字符串 "abcdzdcab",它的最长回文子串为 "cdzdc". 解答: 这个题目的一个简单的解法就是对字符串中的每一个字符,同时向其两边延展,以找到最长回文子串.这种方法是可以的,但要处理回文子串长度为奇数和偶数的两种情况是比较麻烦的.如下图的几个字符串: “a” "aa" "aaa" "

转载:LeetCode:5Longest Palindromic Substring 最长回文子串

本文转自:http://www.cnblogs.com/TenosDoIt/p/3675788.html 题目链接 Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring. 求字符串的最长回文子串 算法1:暴

Leetcode(5)最长回文子串

Leetcode(4)寻找两个有序数组的中位数 [题目表述]: 给定一个字符串 s,找到 s 中 最长 的回文子串.你可以假设 s 的最大长度为 1000.' 第一种方法:未完成:利用回文子串的特点 一开始我的思路如下:回文子串的特点是首尾字母相同,所以我对每一个字母都找到位于它后面的相同字母,利用切片判断这一段是否为回文子串(str[i:j]==str[i:j][::-1]).时间复杂度很高,主要是因为str.find操作非常耗时. class Solution(object): def lo

[Leetcode] Longest palindromic substring 最长回文子串

Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring. 做这道题之前要先了解什么是回文子串.回文串通俗的解释是,分别从字符串两端开始遍历,得到的结果相同,如"abba",从两端的遍历结果都是:&q

leetcode刷题1--动态规划法回文串2

题目是: Given a string s,partition s such that every substring of the partition is a palindrome Return tthe mininum cuts needed for a palindrome partitioning of s. For example,given s="aab" Return 1 since the  palindrome partition["aa",&q

算法题--最长回文子串

题目描述 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设?s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案. 示例 2: 输入: "cbbd" 输出: "bb" 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/longest-palindromic-substring

【LeetCode】5# 最长回文子串

题目描述 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案. 示例 2: 输入: "cbbd" 输出: "bb" 思路 本题运用了一些动态规划的思想,关于动态规划,可以看看我之前的一篇博客了解一下. LeetCode 探索初级算法 - 动态规划 1.首先要找到最简情况.这道题

Leetcode 5. Longest Palindromic Substring(最长回文子串, Manacher算法)

Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000. Example 1: Input: "babad" Output: "bab" Note: "aba" is also a valid answer. Example 2: Input: "cbbd"