20. 有效的括号
- 题目重点:给定一个只包含括号的字符串s,进行括号匹配来判断字符串s是否有效。
- 思路:使用栈(LIFO)的特性去完成有效性的判断,首先遍历字符串:
1. 如果是左括号则压入栈中;
2. 如果是右括号,则检查栈顶是否有对应的左括号:栈为空->返回False;栈顶有对应的左括号,则弹出栈顶元素。
3. 最终遍历完后如果栈为空,表示所有的括号都匹配成功,字符串s有效,返回True;反之返回False。 - 核心代码:
def isValid(s: str) -> bool: # 创建一个空栈 stack = [] # 定义一个括号映射,便于查找右括号对应的左括号 bracket_map = {')': '(', '}': '{', ']': '['} for char in s: if char in bracket_map: # 如果是右括号 top_element = stack.pop() if stack else '#' # 如果当前右括号对应的左括号,和我们从栈中弹出的那个左括号不一样,说明不匹配,返回 False if bracket_map[char] != top_element: # dict[key] return False else: # 如果是左括号 stack.append(char) # 如果栈为空,表示括号匹配成功 return not stack

2534

被折叠的 条评论
为什么被折叠?



