공부, 기록

프로그래머스 가장 긴 팰린드롬 파이썬(PYTHON) 본문

코딩

프로그래머스 가장 긴 팰린드롬 파이썬(PYTHON)

무는빼주세요 2020. 11. 14. 14:13

문제링크 : programmers.co.kr/learn/courses/30/lessons/12904

 

코딩테스트 연습 - 가장 긴 팰린드롬

앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다. 문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요. 예를들

programmers.co.kr

 

 

def isPalindrome(s, start, end):
    diff = int((end - start + 1) / 2 - 1)
    
    for i in range(diff + 1):
        c1 = s[start + i]
        c2 = s[end - i];
        
        if c1 != c2:
            return False

    return True


def solution(s):
    
    for answer in range(len(s),0,-1):
        start = 0
        end = 0 + answer - 1
        
        while end < len(s):
            if isPalindrome(s, start, end):
                return answer;
            start += 1
            end += 1
    
    return 1