[アルゴリズム]有効なパリンドロン


有効なファリンドロン

説明する

class Solution:
    def isPalindrome(self, s: str) -> bool:
        str = []
        for char in s.lower():
            if char.isalnum():
                str.append(char)

        return str == str[::-1]
指定された文字列。lower()を使用して小文字に変換し、isalnum()を使用して各アルファベットと数字を(アルファベットまたは数字)として表示し、リストに個別に格納します。保存したリストが反転したリストと同じである場合、比較を行います。

よい本

def isPalindrome(s: str) -> bool:
    # 자료형 데크로 선언
    Deque = collections.deque()
    
    for char in s:
        if char.isalnum():
            Deque.append(char.lower())
    
    while len(Deque) > 1:
        if Deque.popleft() != Deque.pop():
            return False
    
    return True
リストではなく、Dequeで左右から1つずつ取って対称かどうかを比較します。
def isPalindrome(s: str) -> bool:
    s = s.lower()
    #정규식으로 문자 필터링
    s = re.sub('[^a-z0-9]', '', s)
    
    return s == s[::-1]
アルファベットや数字ではないものを正規表現で取り除きました。