• Home
  • About
    • Che1's Blog photo

      Che1's Blog

      Che1's Dev Blog

    • Learn More
    • Facebook
    • Instagram
    • Github
    • Steam
    • Youtube
  • Posts
    • All Posts
    • Django
    • Python
    • Front-end
    • Algorithm
    • etc
    • All Tags
  • Projects

[Level 2] 가장 긴 펠린드롬

11 Oct 2017

Reading time ~1 minute

앞뒤를 뒤집어도 똑같은 문자열을 palindrome이라고 합니다. longest_palindrom함수는 문자열 s를 매개변수로 입력받습니다. s의 부분문자열중 가장 긴 palindrom의 길이를 리턴하는 함수를 완성하세요. 예를들어 s가 “토마토맛토마토”이면 7을 리턴하고 “토마토맛있어”이면 3을 리턴합니다.


내 풀이

def longest_palindrom(s):
    l = []
    for i in range(len(s)):
        for j in range(i+1, len(s)+1):
            a = s[i:j]
            if a == a[::-1]:
                l.append(len(a))
    if l != []:
        return max(l)

print(longest_palindrom("토마토맛토마토"))
print(longest_palindrom("맛있어토마토"))
7
3

모범답안

def longest_palindrom(s):
    return len(s) if s[::-1] == s else max(longest_palindrom(s[:-1]), longest_palindrom(s[1:]))

재귀를 활용한 풀이



Algorithm Share Tweet +1