码迷,mamicode.com
首页 > 其他好文 > 详细

5. Longest Palindromic Substring 最长的回文子串

时间:2018-02-12 23:41:59      阅读:341      评论:0      收藏:0      [点我收藏+]

标签:bad   output   tin   rgb   syn   rom   input   line   rem   

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"

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
class Solution1:
    def longestPalindrome(self, s):
        """
        :type s: str
        :rtype: str
        """
        res = ""
        for i in range(len(s)):
            j = i + len(res) + 1
            while j <= len(s):
                cur = s[i:j]
                if len(cur) > len(res) and cur == cur[::-1]:
                    res = cur
                j += 1
        return res
 
 
class Solution2:
    def longestPalindrome(self, s):
        if len(s) == 0:
            return ""
        maxLen = 1
        start = 0
        for i in range(len(s)):
            cur = s[i - maxLen - 1:i + 1]
            if i - maxLen >= 1 and cur == cur[::-1]:
                start = i - maxLen - 1
                maxLen += 2
                continue
 
            cur = s[i - maxLen:i + 1]
            if i - maxLen >= 0 and cur == cur[::-1]:
                start = i - maxLen
                maxLen += 1
 
        return s[start:start + maxLen]
 
 
s = "babad"
#s = "cbbd"
solution = Solution2()
res = solution.longestPalindrome(s)
# print(res)







5. Longest Palindromic Substring 最长的回文子串

标签:bad   output   tin   rgb   syn   rom   input   line   rem   

原文地址:https://www.cnblogs.com/xiejunzhao/p/8445814.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!