one line of code at a time

[leetcode] 125. Valid Palindrome 파이썬 코드 본문

leetcode

[leetcode] 125. Valid Palindrome 파이썬 코드

oloc 2024. 6. 23. 18:52

#two-pointers

 

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

 

palindrome인지 테스트하는 문제였다.

 

class Solution(object):
    def isPalindrome(self, s):
        s_lowered = s.lower()
        palindrome = ''.join([char for char in s_lowered if char.isalnum()]) # palindrome test string
        flag = True

        if len(palindrome) > 0:
            front = 0 # front pointer 
            back = len(palindrome) - 1 # back pointer

            while front < back:
                # print(f'front:{palindrome[front]} back:{palindrome[back]}')
                if palindrome[front] == palindrome[back]:
                    front += 1
                    back -= 1
                else:
                    flag = False
                    return flag
            return flag
        else:
            return flag

 

`char.isalnum()`은 alphanumeric인 character이면 True를 반환한다.

alphanumeric이란 alphabet letter (a-z)와 numbers (0-9)를 의미한다.