1. Valid Palindrome


道しるべ

リストに変換

class Solution:
    def isPalindrome(self, s: str) -> bool:
        strs = []
        for char in s:
            if char.isalnum():
                strs.append(char.lower())
 		
        //펠린드롬 여부 판별
        while len(strs) > 1:
            if strs.pop(0) != strs.pop():
                return False
        
        return True
        
  • isalnum():アルファベットと数字を区別するための関数に対応する文字
  • のみを追加
  • lower():すべて小文字に変換
  • pop():最後のインデックス
  • を指定します.

    データ・ウェアハウスによる最適化

    
    class Solution:
        def isPalindrome(self, s: str) -> bool:
            strs: Deque = collections.deque()
            
            for char in s:
            	if char.isalnum():
                	strs.append(char.lower())
            
            while len(strs) > 1:
            	if strs.popleft() != strs.pop():
                	return False
            
            return True
  • Deque = collections.deque()
  • スライドの使用

    class Solution:
        def isPalindrome(self, s: str) -> bool:
            s = s.lower()
            
            //정규식으로 불필요한 문자 필터링
            s= re.sub('[^a-z0-9]', '', s)
            return s ==  s[::-1] //슬라이싱 (뒤집기)

    文字列のスライド

  • s[1]:=文字列の先頭または末尾は省略できます.
  • s[:]==両方を省略すると、コピーが返されます.
  • s[1:100]==インデックスが大きすぎる場合は、文字列の最大長のみを表します.
    等しい(s[1])
  • s[:1]=1がデフォルトです.
  • s[:-1]==
  • を反転
  • s[:2]=2グリッド前に移動します.