'팰린드롬'이란?
리스트로 변환 풀이
class Solution:
def isPalindrome(self, s: str) -> bool:
strs =[]
for char in s:
#isalnum으로 영문자, 숫자 여부를 판별
if char.isalnum():
#lower를 활용하여 소문자로 변환
strs.append(char.lower())
print(strs)
#팰린드롬 판별 여부
while len(strs) > 1:
if strs.pop(0) != strs.pop():
return False
return True
데크 자료형을 이용한 최적화
class Solution:
def isPalindrome(self, s: str) -> bool:
# 자료형 데크로 선언
strs: Deque = collections.deque()
for char in s:
if char.isalnum():
strs.append(char.lower())
while len(strs) > 1:
if strs.popleft() != strs.pop():
return False
return True
슬라이싱 사용
class Solution:
def isPalindrome(self, s: str) -> bool:
s = s.lower()
# 정규식으로 불필요한 문자 필터링
s = re.sub('[^a-z0-9]', '', s)
return s == s[::-1] #슬라이싱