LeetCode|Day18|20. 有效的括號|Python刷題筆記
🗓? 本文屬于【LeetCode 簡單題百日計劃】系列
👉 點擊查看系列總目錄 >>
📌 題目簡介
題號:20. 有效的括號
難度:簡單
題目鏈接:點擊跳轉
🧾 題目描述(簡要)
判斷一個字符串中的括號是否有效。括號包括 ()[]{}
- 左右匹配;
- 順序也必須正確;
- 空字符串是有效括號。
示例:
輸入:s = "()[]{}"
輸出:true輸入:s = "(]"
輸出:false
💡 解法:棧 + 字典匹配
class Solution:def isValid(self, s: str) -> bool:stack = []mapping = {')': '(', ']': '[', '}': '{'}for char in s:if char in mapping:if not stack or stack[-1] != mapping[char]:return Falsestack.pop()else:stack.append(char)return not stack
🧠 我的理解
- 括號類題目通常用棧解決;
- 字典
mapping
用于快速匹配對應關系; - 遇到右括號時判斷棧頂元素是否匹配;
- 最后棧為空說明完全匹配。
📌 基礎語法復習:
stack.append(char)
:壓棧;stack.pop()
:彈出棧頂;not stack
:判斷棧是否為空;dict[char]
:訪問字典中對應鍵的值。