20-有效的括号

给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
输入: "()"
输出: true
示例 2:
输入: "()[]{}"
输出: true
示例 3:
输入: "(]"
输出: false
示例 4:
输入: "([)]"
输出: false
示例 5:
输入: "{[]}"
输出: true

pairs = {")":"(","]":"[","}":"{"}

stack = []
for S in s:
    # 左括号入栈
    if S not in pairs:
        stack.append(S)
    else:
        # 1.栈中没有元素与右括号匹配,栈为空
        # 2.不匹配
        if not stack or   pairs[S]!= stack.pop() :
            return False
# 栈中有左括号为False
# 栈为空,True
return not stack
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容