# Leetcode 20. 有效括號題解 ## 概述 這一題要求檢查括號是否配對,如果都倆倆配對的話回傳 True,反之回傳 False。 ## 解題思路 先創建雜湊表來儲存配對的字串 (),[],{} 一個一個掃描字串,並且使用 **棧 (Stack)** 來儲存左邊的括號,如果遇到右邊的括號,就去棧裡面查看最後一個是不是配對的左邊括號,如果不是就回傳False,如果是,就把棧中最後一個刪除,最後檢查棧是否為空,如果是空的就回傳True。 ```python3= class Solution: def isValid(self, s: str) -> bool: length = len(s) if length % 2 == 1: return False hash_map = { ")" : "(", "]" : "[", "}" : "{" } stack = [] for cs in s: # 遍歷字串 if cs in hash_map: # 如果是字串的右邊 if not stack or stack[-1] != hash_map[cs]: # 比較棧中的最後一個是不是對應的括弧 return False stack.pop() # macth 的話就刪除 else: # 左邊的要先放進去 stack.append(cs) return not stack # 檢查棧是否為空 ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up