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 뒤에 '_'붙어 있다는 점을 유의하자
반응형
'프로그래밍 > 프로그래밍책📚' 카테고리의 다른 글
면접을 위한 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 |