0
点赞
收藏
分享

微信扫一扫

【LeetCode Python实现】20. 有效的括号(简单)

Mezereon 2022-04-14 阅读 86

文章目录


题目描述

给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

  • 左括号必须用相同类型的右括号闭合。
  • 左括号必须以正确的顺序闭合。

示例 1:

输入:s = “()”
输出:true

示例 2:

输入:s = “()[]{}”
输出:true

示例 3:

输入:s = “(]”
输出:false

示例 4:

输入:s = “([)]”
输出:false

示例 5:

输入:s = “{[]}”
输出:true

解析

括号需要成对出现,遇到 左括号时入栈,遇到右括号时出栈比较 括号是否匹配,不匹配直接返回,结束时需要判断 栈是否为空,非空可能存在连续的左括号,我们使用列表模拟栈。

参考代码

# 32 ms	14.9 MB  90.05%

class Solution:
    def isValid(self, s: str) -> bool:
        if len(s) % 2:
            return False
        
        temp = ""
        for c in s:
            if c in "({[":
                temp += c
            else:
                if c == ")":
                    if temp[-1:] != "(":
                        return False
                elif c == "]":
                    if temp[-1:] != "[":
                        return False
                else:
                    if temp[-1:] != "{":
                        return False
                temp = temp[:-1]
        if temp:
            return False
        else:
            return True

举报

相关推荐

0 条评论