가장 긴 팰린드롬 LV3
문제 설명
앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다.
문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요. 예를 들면, 문자열 s가 "abcdcba"이면 7을 return 하고 "abacde"이면 3을 return 합니다.
제한사항
문자열 s의 길이 : 2,500 이하의 자연수
문자열 s는 알파벳 소문자로만 구성
입출력 예
s answer "abcdcba" 7 "abacde" 3
가능한 제일 긴 길이부터 팰린드롬이 가능한지 확인하였다.
s의 길이가 크지 않아 해당 방법으로도 풀이가 가능했다.
더보기
def solution(s):
answer = 1
n = len(s)
for i in range(n, 1, -1):
j = 0
canAcces = n - i + 1
for j in range(canAcces):
arr = s[j:j + i]
index = int(i / 2)
if i % 2 == 1:
for check in range(1, index + 1):
if arr[index + check] != arr[index - check]:
break
else:
return i
elif arr == arr[::-1]:
return i
return answer
'알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글
[디스크 컨트롤러/LV3/Python3] (0) | 2024.11.20 |
---|---|
[등대/LV3/Python3] (1) | 2024.11.06 |
[무지의 먹방 라이브/LV4/Python3] (0) | 2024.10.29 |
[트리 트리오 중간값/LV4/Python3] (0) | 2024.10.28 |
[상담원 인원/LV3/Python3] (0) | 2024.10.19 |