파이썬 알고리즘 인터뷰 6장 1번 유효한 팰린드롬 (리트코드 125)

Kim Yongbin·2023년 8월 12일
0

코딩테스트

목록 보기
1/162

Problem

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

주어진 문자여열이 팰린드롬인지 확인하라.

대소문자를 구분하지 않으며, 영문자와 숫자만을 대상으로 한다.

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.

Example 3:

Input: s = " "
Output: true
Explanation: s is an empty string "" after removing non-alphanumeric characters.
Since an empty string reads the same forward and backward, it is a palindrome.

Solution

class Solution:
    def isPalindrome(self, s: str) -> bool:
        s_list = [alpha_num.lower() for alpha_num in s if alpha_num.isalnum()]
        return s_list == s_list[::-1]
  • .isalpha() -> bool해당 문자열이 모두 알파벳(숫자, 문장부호가 아닌)인지 확인하는 함수
  • .isdigit() -> bool해당 문자열이 모두 숫자인지(0~9) 확인하는 함수
  • isalnum() -> bool.isapha() + .isdigit()인 함수이다. 즉 해당 문자열이 알파벳 + 숫자로만 구성되어 있는지 확인하는 함수
  • 추가적으로 python에서는 Comprehension 문법에 대해 최적화되어 있다고 한다.

Result

Reference

https://learnpython.com/blog/python-string-methods/

https://blog.ukjae.io/posts/inspecting-list-comprehension/

profile
반박 시 여러분의 말이 맞습니다.

0개의 댓글