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]
'PS > String Manipulation' 카테고리의 다른 글
프로그래머스: 신규 아이디 추천 (Java) (0) | 2022.06.28 |
---|---|
프로그래머스: 신고 결과 받기 (Java) (0) | 2022.06.28 |