🔊
파이썬 알고리즘 인터뷰
책을 참고했습니다.
문자열이 팰린드롬인지 검사하는 문제 (문자열은 대소문자를 구분하지 않는 영문자와 숫자로 구성되어져 있음)
영문자
와 숫자
이므로 나머지는 제외한 배열을 만든다.class Solution:
def isPalindrome(self, s: str) -> bool:
li = []
for c in s:
if c.isalnum():
if c.isalpha():
c = c.lower()
li.append(c)
for i in range(int(len(li) / 2)):
if li[i] != li[len(li) - 1 - i]:
return False
return True
def isPalindromeBySlicingAndRE(self, s: str) -> bool:
s = s.lower()
# 정규식 활용
s = re.sub('[^a-z0-9]', '', s)
return s == s[::-1]