• 【Leetcode栈】有效的括号(20)


    题目

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

    有效字符串需满足:

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

    注意空字符串可被认为是有效字符串。

    示例 1:

    输入: "()"
    输出: true
    

    示例 2:

    输入: "()[]{}"
    输出: true
    

    示例 3:

    输入: "(]"
    输出: false
    

    示例 4:

    输入: "([)]"
    输出: false
    

    示例 5:

    输入: "{[]}"
    输出: true
    

    解答

    思路:

    • 用栈。遇到左括号入栈,右括号就与栈顶匹配,如果字符串是有效括号,那么所有字符匹配完后栈为空。

    通过代码如下:

    class Solution:
        def isValid(self, s: str) -> bool:
            l = []
            d = {'[':']', '{':'}', '(':')'}
    
            for x in s:
                if x in d.keys():
                    l.append(x)
                else:
                    if len(l)==0 or x!=d[l.pop()]:
                        return False
            return len(l) == 0
        
    
  • 相关阅读:
    达梦常用命令
    sqlserver命令
    db2常用命令
    docker常用命令
    linux常用命令
    vim常用命令
    cpu、内存、io、内存、负载
    3.系统状态监控
    10 innodb之关键特性刷新邻接页
    9 innodb关键特性之自适应哈希索引03
  • 原文地址:https://www.cnblogs.com/ldy-miss/p/11981279.html
Copyright © 2020-2023  润新知