문제

 

Valid Palindrome - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

팰린드롬 : 앞뒤가 똑같은 단어/문장
주어진 문자열이 팰린드롬인지 검증하는 문제이다. 대소문자는 구분하지 않고, 영문자와 숫자만 해당된다.

#예제
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


결과

반응형

+ Recent posts