본문 바로가기

알고리즘/파이썬 알고리즘 인터뷰

[LeetCode] 125. Valid Palindrome (문자열 조작)

문제

https://leetcode.com/problems/valid-palindrome/

 

Valid Palindrome - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

모든 대문자는 소문자로 바꾸고, 알파벳과 숫자가 아닌 문자는 제거하자.

모든 가공을 거친 문자는 앞으로 읽었을 때와 뒤로 읽었을 때가 동일해야 한다. 이것을 펠린드롬이라고 한다.

주어진 문자가 펠린드롬 문자인지 구하자.

 

내 풀이

 

시간 : 43ms

주어진 문자열 s에서 알파벳 또는 숫자 형태의 문자만 가지고 리스트를 만들었다.

리스트의 문자를 전부 합치고, 대문자를 소문자로 만들었다.

최종적으로 가공된 문자열 s를 구하였고, 그것을 거꾸로 돌렸을 때 동일한지 결과를 반환하였다.

 

class Solution:
    def isPalindrome(self, s: str) -> bool:
        lst = [x for x in s if x.isalpha() or x.isdigit()]
        s = ''.join(lst).lower()

        return s == s[::-1]