class Solution:
def isPalindrome(self, s: str) -> bool:
s = s.lower()
validSet = set(map(str, 'abcdefghijklmnopqrstuvwxyz0123456789'))\
newS = ''
for letter in s:
if letter in validSet:
newS += letter
for forward, backward in zip(newS, newS[::-1]):
if forward != backward:
return False
return True
느릴 줄 알았는데 생각보다 꽤나 빠르다..
if newS == newS[::-1]:
return True
else:
return False
비교를 이런 방식으로 해도 시간 차이는 별로 없다.
import re
class Solution:
def isPalindrome(self, s: str) -> bool:
s = s.lower()
pattern = re.compile('[a-z0-9]')
newS = ''.join(pattern.findall(s))
if newS == newS[::-1]:
return True
else:
return False
문자와 숫자만 패턴으로 걸러서 비교했다.
그래도 쪨 빠르네