Python语言,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.
Example:
Input: "babad" Output: "bab" Note: "aba" is also a valid answer.
Example:
Input: "cbbd" Output: "bb"
Pyhton代码如下:
class Solution(object): def longestPalindrome(self, s): """ :type s: str :rtype: str """ longest,start = 1,0 for i in xrange(len(s)): #s[i]和s[i-len-1]构成回文首尾:如……abcba中a和a构成首尾,长度每次递增2 if i-longest-1>=0 and s[i-longest-1:i+1] == s[i-longest-1:i+1][::-1]: start = i-longest-1 longest += 2 continue #s[i]和s[1-len]构成回文首尾:如……bb中b和b构成首尾,长度每次递增1 if i-longest>=0 and s[i-longest:i+1] == s[i-longest:i+1][::-1]: start = i-longest longest += 1 return s[start:start+longest]
最初使用了两层for循环,运行超时了,新方法如上,使用一层循环记最长回文子串的开始下标和长度。

浙公网安备 33010602011771号