PS/String Manipulation

Leetcode 125. Valid Palindrome

닻과매 2021. 10. 16. 17:01

Given a string s, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.

 

Example 1:

Input: s = "A man, a plan, a canal: Panama"

Output: true

Explanation: "amanaplanacanalpanama" is a palindrome.

 

Example 2:

Input: s = "race a car"

Output: false

Explanation: "raceacar" is not a palindrome.

 

Constraints:

  • 1 <= s.length <= 2 * 10**5
  • s consists only of printable ASCII characters.

 

 


 

 

내 풀이

alphanumeric한 글자만 골라내기 위해서 ord() 함수를 이용하였다. alphanumeric을 대충 읽고 알파벳만 제외하면 되겠지? 하고 submit 해서 한 번 틀렸다.

 

 

코드

class Solution:
    def isPalindrome(self, s: str) -> bool:
        # 알파벳만 인식하는 방법? + 숫자도
        s = s.lower()
        new_s = ""
        for letter in s:
            if (ord(letter) >= 48 and ord(letter) <= 57) or (ord(letter) >= 97 and ord(letter) <= 122):
                new_s += letter
        #print(new_s)
        #print(ord('1'))
        return new_s == new_s[::-1]