leetcode 매일 한 문제

5. Longest Palindromic Substring
사고방식: 가장 게으름을 피우는 방식, 즉 가능한 모든 회문을 여러 번 순환한 다음에 가장 긴 것을 찾아낸다. 그러나 이렇게 하는 대가로 시간의 복잡도가 비교적 높고 마지막 예를 통과할 수 없다. 마지막에 교묘한 방식으로 통과한 다음에 해석이 주는 몇 가지 방법을 보고 공부를 많이 해야 한다고 느낀다.코드는python3로 작성됩니다.
코드:
class Solution:
    def longestPalindrome(self, s):
        """
        :type s: str
        :rtype: str
        """
        a = ''
        l = []
        if s == s[::-1]:  //     ,          ,     ,           
            return s
        for i in range(len(s)):
            for j in range(1,len(s)-i+1):
                if s[i] == s[-1]:
                    if s[i:] == s[i:][::-1]:
                        l.append(s[i:])
                if s[i] == s[-j]:
                    a = s[i:-j+1][::-1]
                    if a == s[i:-j+1]:
                        l.append(a)
        
        if not l:
            return s[0]
        l1 = list(map(len,l))
        x = l1.index(max(l1))
        return l[x]

좋은 웹페이지 즐겨찾기