Longest Palindromic Substring--leetcode

来源:互联网 发布:php curlfile上传文件 编辑:程序博客网 时间:2024/06/11 16:21

我的解法v1:

  • 思路:查找字符串中aa或者aba类似的字符字串,然后开始往两边拓展

  • 代码:

class Solution:    # @param {string} s    # @return {string}    def longestPalindrome(self, s):        ret = ''        if len(s) == 1:            return s        for index in range(len(s) -1):            if s[index] == s[index +1]:                tmp = self.verifyPalindrome(s, index, index +1)                if len(tmp) >= len(ret):                    ret = tmp        for index in range(1, len(s)-1):            if s[index -1] == s[index +1]:                tmp = self.verifyPalindrome(s, index -1, index +1)                if len(tmp) >= len(ret):                    ret = tmp        return ret    def verifyPalindrome(self, s, i, j):        for var in range(1, len(s)):            if (i - var) <0 or (j + var) >= len(s) or s[i-var] != s[j+var]:                return s[i-var+1: j+var]def main():    test = Solution()    strForTest = 'aaaa'    print test.longestPalindrome(strForTest)if __name__ == '__main__':    main()
  • result: AC 但是感觉快要超时的样子
    时间复杂度是O(n2),看到网上有动态规划O(n)的做法!!!
0 0
原创粉丝点击