Algorithm
팰린드롬
Hoonco
2023. 1. 15. 17:00
팰린드롬이란?
앞뒤가 똑같은 단어나 문장으로, 뒤집어도 같은 말이 되는 단어 혹은 문장을 의미한다.
ex) 소주 만 병만 주소
주어진 문제는 아래와 같다.
주어진 문자열이 팰린드롬인지 확인하라. 대소문자를 구분하지 않으며, 영문자 숫자만을 대상으로 한다.
예제 1.
"A man, a plan, a canal: Panama" 출력: True
예제 2.
"race a car" 출력: False
내가 작성한 코드는 이와 같다.
q = "A man, a plan, a canal: Panama"
q2 = "race a car"
def solution(str):
# 공백 제거 및 소문자화
chars = list(str.lower().strip())
original_chars = []
for x in chars:
# 알파벳 혹은 숫자만 저장
if x.isalnum():
original_chars.append(x)
reverse_chars = original_chars.copy() # 값 복사
reverse_chars.reverse()
return original_chars == reverse_chars
print(solution(q))
lower()와 strip을 이용하여 공백을 제거하고
isalnum을 통하여 숫자와 알파벳만 저장 한 후
reverse_chars와 비교한다.