class Solution:
def isPalindrome(self, s: str) -> bool:
str = []
for char in s.lower():
if char.isalnum():
str.append(char)
return str == str[::-1]
주어진 string을 .lower()를 이용해서 소문자로 바꾼 다음 한 글자씩 alphanumeric이라면 (알파벳이거나 숫자)을 isalnum()을 이용해서, 따로 리스트에 저장한다. 만약 그 저장한 리스트와 뒤집은 리스트가 같은지 비교한다.
def isPalindrome(s: str) -> bool:
# 자료형 데크로 선언
Deque = collections.deque()
for char in s:
if char.isalnum():
Deque.append(char.lower())
while len(Deque) > 1:
if Deque.popleft() != Deque.pop():
return False
return True
리스트가 아니라 Deque을 이용해서 좌우에서 하나씩 빼며 대칭이 되는지 비교했다.
def isPalindrome(s: str) -> bool:
s = s.lower()
#정규식으로 문자 필터링
s = re.sub('[^a-z0-9]', '', s)
return s == s[::-1]
정규식을 이용해서 알파벳과 숫자가 아닌 것들을 제거했다.