728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/12904
문제 설명
앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다.
문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요.
예를들면, 문자열 s가 "abcdcba"이면 7을 return하고 "abacde"이면 3을 return합니다.
풀이
Code
def solution(s):
# 1. 팰린드롬 체크 함수 정의
def check(string) :
# 1-1. left, right 설정
left, right = 0, len(string) - 1
# 1-2.
while left < right :
# 1-2-1. left, right 인덱스의 글자가 다를 경우 False 반환
if string[left] != string[right] : return False
# 1-2-2. left, right 값 변환
left += 1
right -= 1
# 1-3. True 반환
return True
# 2.
for length in range(len(s), 0, -1) :
for i in range(len(s) - length + 1) :
# 2-1. 해당 문자열이 팰린드롬일 경우 길이 반환
if check(s[i : i + length]) :
return length
728x90
반응형
'Coding Test > Programmers' 카테고리의 다른 글
[Python/Programmers] 인사고과 (0) | 2023.12.21 |
---|---|
[Python/Programmers] [PCCP 기출문제] 2번 / 석유 시추 (1) | 2023.12.19 |
[Python/Programmers] 불량 사용자 (1) | 2023.12.06 |
[Python/Programmers] 스티커 모으기(2) (0) | 2023.12.05 |
[Python/Programmers] 가장 먼 노드 (0) | 2023.12.05 |