문자열이 팰린드롬(앞뒤가 같은 ex."abcba") 인지 확인하라! 대소문자 구분 X, 영어와 숫자만 취급
"A man is i nama" -> true
"race a caras" -> false
class Solution:
def isPalindrome(self, s: str) -> bool:
# 전처리
strs = []
for char in s:
if char.isalnum():
strs.append(char.lower())
# 리스트의 앞 뒤 비교
for i in range(len(strs)):
if strs[i] != strs[-(i + 1)]:
return False
return True
class Solution:
def isPalindrome(self, s: str) -> bool:
# 전처리
strs = []
for char in s:
if char.isalnum():
strs.append(char.lower())
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 문자열을
s = re.sub('[^a-z0-9]', '', s)
return s == s[::-1]