프로그래밍/프로그래밍책📚

[리트코드][Python]125-valid Palindrome

개발자 덕구🐾 2022. 1. 25. 11:19
728x90

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

 

파이썬 알고리즘 인터뷰 책을 보고 풀이

 

 

 

 

대소문자를 구분하지 않고, 영문자와 소문자만을 대상으로 하여 팰린드롬인지 확인하라

 

 

 

정규표현식을 사용해서 풀이하였다.

 

<정답코드>

 def isPalindrome(self, s: str) -> bool:
        words = re.sub(r'[^A-Za-z0-9]','',s).lower()
        return words==words[::-1]

 

원래는 import re가 필요한데 리트코드에는 이미 되어있다.

 

 

^ 의 의미는 뒤에 나오는 것이 아니라는 의미이고 ''는 없애라는 의미이다.

즉 영어 대소문자, 숫자가 아닌 것들을 없애고 lower()을 통해 모두 소문자로 만들으라는 의미이다.

 

 

 

[^A-Za-z0-9]를 [^\w]를 이용해 풀어봤지만 틀렸다.

그 이유는 \w는 영어 대소문자와 숫자 그리고 '_'를 포함하기 때문이다.

 

\w 는 [A-Za-z0-9_]를 의미한다. 9 뒤에 '_'붙어 있다는 점을 유의하자

 

 

 

 

 

 

반응형