문제
팰린드롬 : 앞뒤가 똑같은 단어/문장
주어진 문자열이 팰린드롬인지 검증하는 문제이다. 대소문자는 구분하지 않고, 영문자와 숫자만 해당된다.
#예제
Input: s = "A man, a plan, a canal: Panama"
Output: true
Explanation: "amanaplanacanalpanama" is a palindrome.
풀이
#1 deque 사용
class Solution:
def isPalindrome(self, s: str) -> bool:
s = s.lower()
dq = collections.deque()
for x in s:
if x.isalnum():
dq.append(x)
while len(dq) > 1 :
if dq.popleft() != dq.pop():
return False
return True
#2 슬라이딩 사용
class Solution:
def isPalindrome(self, s: str) -> bool:
s = s.lower()
result = []
for x in s:
if x.isalnum():
result.append(x)
if result == result[::-1] :
return True
return False
결과
반응형