728x90
36ms
import re
class Solution:
def isPalindrome(self, s: str) -> bool:
s = re.sub(r'[^\w]|_', '', s.lower())
return s == s[::-1]
re를 사용해서 모든 alphanumeric가 아닌 것(^) or underscore를 빈문자열로 바꾼다.
다른 풀이
class Solution:
def isPalindrome(self, s: str) -> bool:
cleanedString = "".join(filter(str.isalnum, s.upper()) )
return (0,1)[cleanedString == cleanedString[::-1]]
str.isalnum을 사용해서 filter 내장함수 사용
return 으로는 tuple로 (0,1) 뒤에 인덱싱으로 조건을 사용했다. 처음 보는 방식
뒤의 bracket 조건이 false이면 0을 반환하기 때문에 tuple의 0번째 값을 return한다.
tuple (0,1)을 (0,2)로 바꿔보면 뒤의 조건이 참일 경우 2를 return함을 알 수 있다.
tuple로 T/F를 반환. 근데 왜 이렇게 하는 건지는 정확히 모르겠다.
아마 예전에는 저런 방식으로 return 해줘야 했기 때문에 그런거 같은 추측을 해본다.
728x90
'Leetcode' 카테고리의 다른 글
[LeetCode] Linked List Cycle 파이썬 (is operator, id) (0) | 2021.04.01 |
---|---|
[LeetCode] Single Number python (linear complexity) (0) | 2021.04.01 |
[LeetCode] Best Time to Buy and Sell Stock II python (greedy) (0) | 2021.04.01 |
[LeetCode] Best Time to Buy and Sell Stocks python (0) | 2021.04.01 |
[LeetCode] Pascal's Triangle 파이썬 (+Pascal's Triangle II) (0) | 2021.04.01 |
댓글