class Solution:
def isValid(self, s: str) -> bool:
'''判断是否是有效的括号
Args:
str: 包含括号的字符串
Returns:
返回判断的结果,满足条件:
1. 左括号必须用相同的类型的右括号闭合。
2. 左括号必须以正确的顺序闭合。
空字符串可以被认为是有效的字符串
返回类型为布尔型
'''
# 以栈形式存储左括号
stack = []
# 以右括号当成键映射对应类型的左括号
prths_mapping = {'}': '{', ']': '[', ')': '('}
# 遍历字符串,遇左括号则进行入栈
for ch in s:
# 对字符进行判断,是否为右括号
if ch in prths_mapping:
# 为右括号的情况下,判断 stack 栈顶是否是同类型的左括号
# pop 出栈顶的字符
# 若 stack 为空,用 '?' 进行标记
pop_prth = stack.pop() if stack else '?'
# 如果左右括号不成对,直接返回 False
if prths_mapping[ch] != pop_prth:
return False
else: # 左括号入栈
stack.append(ch)
# stack 最终为空,则表示为有效
return not stack
有效的括号
最新推荐文章于 2023-05-24 10:07:00 发布