题目
描述
给出一个仅包含字符’(‘,’)‘,’{‘,’}‘,’[‘和’]',的字符串,判断给出的字符串是否是合法的括号序列
括号必须以正确的顺序关闭,"()“和”()[]{}“都是合法的括号序列,但”(]“和”([)]"不合法。
数据范围:字符串长度 0≤n≤100000\le n \le 100000≤n≤10000
要求:空间复杂度 O(n)O(n)O(n),时间复杂度 O(n)O(n)O(n)
示例1
输入:
“()[]{}”
返回值:
True
代码
# 遍历字符串
# 遇到左边括号,就入栈
# 遇到右边括号,栈是否为空
# 为空--False
# 不为空, 弹出栈顶元素
# 弹出的栈顶元素和遇到的右边括号匹配一下,看是否是相同类型
# 是不同类型,返回False
# 是相同类型,继续往下遍历
# 如果字符串全部匹配完了
# 栈为空---True
# 栈不为空--False
class Node:
def __init__(self, data, _next = None):
self.data