有效的括号

有效的括号

1、题目

图1

2、题解

辅助栈

  • 遇到左括号入栈,遇到右括号时,对应栈顶左括号出战,则遍历完所有括号后,栈为空。
  • 建立哈希表,构建左右括号对应关系。

边界问题:

  • 当栈为空时,此时\(stack.pop()\)会报错,因此需要给stack赋予初值,并在哈希表中建立对应关系,予以配合。此时当stack为空,且字符串为右括号可以正常提前返回False。
  • 字符串以左括号结尾,该情况下可以正常遍历,最后根据\(len(stack)==1\),判断是否是有效的括号组合。
1
2
3
4
5
6
7
8
9
10
11
class Solution:
def isValid(self, s: str) -> bool:
dic = {'{': '}', '[': ']', '(': ')', '?': '?'}
stack = ['?']
for c in s:
if c in dic:
stack.append(c)
elif dic[stack.pop()] != c:
return False
return len(stack) == 1


有效的括号
http://example.com/2024/04/14/有效的括号/
作者
Z Z
发布于
2024年4月14日
许可协议