• 5. 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"
    

     

    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)







  • 相关阅读:
    IDEA 编译时 未结束的字符串文字
    JAVA文件下载,页面显示另存为效果
    no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
    【转】修改LINUX时间
    【转】tomcat7性能调优
    【转】Nginx中upstream有以下几种方式:
    【转】tomcat性能调优
    【转】Memcached安装
    【转】 linux下的g++编译器安装
    【转】nginx+tomcat+memcached (msm)实现 session同步复制
  • 原文地址:https://www.cnblogs.com/xiejunzhao/p/8445814.html
Copyright © 2020-2023  润新知