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와 비교한다.