728x90
https://leetcode.com/problems/valid-palindrome/
파이썬 알고리즘 인터뷰 책을 보고 풀이
대소문자를 구분하지 않고, 영문자와 소문자만을 대상으로 하여 팰린드롬인지 확인하라
정규표현식을 사용해서 풀이하였다.
<정답코드>
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 뒤에 '_'붙어 있다는 점을 유의하자
반응형
'프로그래밍 > 프로그래밍책📚' 카테고리의 다른 글
면접을 위한 CS전공지식 노트_OS (0) | 2022.06.24 |
---|---|
[leetcode][Python]234. Palindrome Linked List(4일간의 팰린드롬 연결리스트 해결기🤪) (0) | 2022.02.04 |
[leetcode]121. Best Time to Buy and Sell Stock (0) | 2022.01.30 |
(2)파이썬알고리즘인터뷰 - leetCode:[819]Most Common Word (0) | 2022.01.22 |
(1)파이썬알고리즘인터뷰 - 빅오와 자료형 (0) | 2022.01.21 |