LeetCode 125. Valid Palindrome

개발공부를해보자·2025년 1월 3일

LeetCode

목록 보기
1/95

파이썬 알고리즘 인터뷰 문제 1번(리트코드 125번) Valid Palindrome
https://leetcode.com/problems/valid-palindrome/description/

abba는 뒤집어도 abba니까 True
abca는 뒤집으면 acba로 다르니까 False를 반환하는 문제

그런데 주어진 문자열에 특수 문자 등이 섞여 있을수 있고,
우리는 알파벳, 숫자만 고려해서 판단해야한다.

나의 풀이

class Solution:
    def isPalindrome(self, s: str) -> bool:
        temp = []
        for char in s:
            if char.isalnum():
                temp.append(char.lower())
        return temp == temp[::-1]

문자열을 순회하며 .isalnum()으로 문자 또는 숫자인 지 판단하여 맞다면 temp = [] 리스트에 .lower()이용하여 소문자로 바꾸어 추가한다.
마지막으로 temp == temp[::-1]인지 판단한다.

다른 풀이

import re
class Solution:
    def isPalindrome(self, s: str) -> bool:
        cleaned = re.sub(r"[^a-zA-Z0-9]", "", s.lower())
        return cleaned == cleaned[::-1]

배운 점

정규 표현식에 능숙하지 않은데, 상당히 강력한 기능이므로 잘 알아두자.

정규 표현식에 대한 글
https://velog.io/@coding_study/정규식-활용-예시

profile
개발 공부하는 30대 비전공자 직장인

0개의 댓글