앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다.
문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요.
예를들면, 문자열 s가 "abcdcba"이면 7을 return하고 "abacde"이면 3을 return합니다.
s | answer |
---|---|
"abcdcba" | 7 |
"abacde" | 3 |
# 코드
def solution(s):
answer = 1
n = len(s)
# 전체 부분 집합 확인
for i in range(0, n):
for j in range(n+2, i+1, -1):
temp = s[i:j] # i ~ j 범위의 부분 문자열 확인
if temp == temp[::-1]:
# 팰린드롬인 경우 길이 확인
answer = max(answer, len(temp))
return answer