본문 바로가기

알고리즘

[알고리즘] 문자열 조작-유효한 팰린드롬 - Jungyu Ko

 문제 출처

https://leetcode.com/problems/valid-palindrome/

 

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

문제 설명

주어진 문자열이 팰린드롬인지 확인하라. 대소문자를 구분하지 않으며, 영문자와 숫자만을 대상으로 한다.

문제 예시

문제 풀이

class Solution:
    def isPalindrome(self, s: str) -> bool:
        strs = []
      
        for char in s:                      # 모든 입력 s를 반복
            if char.isalnum():              # 각 단어가 문자 혹은 숫자인 경우,
                strs.append(char.lower())   # 소문자로 변경하여 strs 배열에 저장
        
        while len(strs) > 1:                # strs의 길이가 1보다 크다면,
            if strs.pop(0) != strs.pop():   # strs의 1번째 값과 마지막 값이 같지 않다면,
                return False                # False 출력
        
        return True                         # 모든 경우를 통과하면 True
  1. 입력 문자열을 문제의 상황에 맞게 문자, 숫자만으로 정제합니다.
  2. 대 소문자를 구분하지 않으므로 소문자 혹은 대문자로 모두 치환해줍니다.
  3. 변환된 문자를 팰린드롬인지 확인하기 위해 처음과 마지막 값을 비교하며 팰린드롬여부를 판별합니다.