zoukankan      html  css  js  c++  java
  • 20. 有效的括号

    问题描述

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

    有效字符串需满足:

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

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

    解决方案

    • 创建一个字典来映射括号的关系
    • 利用栈的后进先出特性来对括号进行校验
      • 如果要元素为正括号,直接入栈
      • 如果要入栈的括号不能与栈尾的元素闭合,则返回错
    • 最后站如果不为空,则返回错误

    时间复杂度:O(n)

    show me the code

    class Solution:
        def isValid(self, s: str) -> bool:
            my_dict = {
                "}": "{",
                "]": "[",
                ")": "("
            }
            my_stack = []
            for i in s:
                if i not in my_dict:                                        # 如果不是反括号,入栈
                    my_stack.append(i)
                elif not my_stack or my_dict[i] is not my_stack.pop():      # 如果栈为空,或者当前的反括号不能与栈尾的元素闭合
                    return False  
            return not my_stack                                             # 栈空则返回真,反之则假
    
    
  • 相关阅读:
    实验10 使用PBR实现策略路由
    实验9 使用route-policy控制路由
    实验8 filter-policy过滤路由
    实验7 ISIS多区域配置
    实验6 IS-IS基本配置
    MySQL复制表
    mysql数据备份
    mysql 创建用户,授权
    数据库
    mysql 修改文件记录:
  • 原文地址:https://www.cnblogs.com/huang-yc/p/10707975.html
Copyright © 2011-2022 走看看