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

이승수·2021년 9월 18일
0

문제설명

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

제한사항

  • 문자열 s의 길이 : 2,500 이하의 자연수
  • 문자열 s는 알파벳 소문자로만 구성

입출력 예

sanswer
"abcdcba"7
"abacde"3

입출력 예 설명

  1. 입출력 예
    4번째자리 'd'를 기준으로 문자열 s 전체가 팰린드롬이 되므로 7을 return합니다.

  2. 입출력 예
    2번째자리 'b'를 기준으로 "aba"가 팰린드롬이 되므로 3을 return합니다.


def solution(s):
    answer = 1                         # 팰린드롬이 안되면 최소값 1

    for i in range(len(s)):            # 0부터 (s의 길이-1)까지
        for j in range(1,len(s)+1):    # 1부터 s의 길이까지
  
  	    # 0:1, 0:2… 확인, 1:2, 1:3… 확인, ~
            if s[i:j] == s[i:j][::-1]: 
                answer = max(answer, len(s[i:j])) 
		# 기존 answer와 비교하면서 가장 큰 값으로 교체
  
    return answer
profile
AI/Data Science

0개의 댓글