LeetCode|Day18|20. 有效的括号|Python刷题笔记
🗓️ 本文属于【LeetCode 简单题百日计划】系列
📌 题目简介
题号:20. 有效的括号
难度:简单
题目链接:点击跳转
🧾 题目描述(简要)
判断一个字符串中的括号是否有效。括号包括 ()[]{}
- 左右匹配;
- 顺序也必须正确;
- 空字符串是有效括号。
示例:
输入:s = "()[]{}"
输出:true
输入:s = "(]"
输出:false
💡 解法:栈 + 字典匹配
python
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 False
stack.pop()
else:
stack.append(char)
return not stack
🧠 我的理解
- 括号类题目通常用栈解决;
- 字典
mapping
用于快速匹配对应关系; - 遇到右括号时判断栈顶元素是否匹配;
- 最后栈为空说明完全匹配。
📌 基础语法复习:
stack.append(char)
:压栈;stack.pop()
:弹出栈顶;not stack
:判断栈是否为空;dict[char]
:访问字典中对应键的值。