zoukankan      html  css  js  c++  java
  • 20190305-leetcode题目有效的括号

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

    有效字符串需满足:

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

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

    官方解读:

    使用堆栈处理该题,初始化栈 S。

    1.一次处理表达式的每个括号。
    2.如果遇到开括号,我们只需将其推到栈上即可。这意味着我们将稍后处理它,让我们简单地转到前面的 子表达式。
    3.如果我们遇到一个闭括号,那么我们检查栈顶的元素。如果栈顶的元素是一个 相同类型的 左括号,那么我们将它从栈中弹出并继续处理。否则,这意味着表达式无效。
    4.如果到最后我们剩下的栈中仍然有元素,那么这意味着表达式无效。

    示例 1:

    输入: "()"
    输出: true
    

    示例 2:

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

    示例 3:

    输入: "(]"
    输出: false
    

    示例 4:

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

    示例 5:

    输入: "{[]}"
    输出: true
    def isValid(s):
        stack = []
        for item in s:
            if item  == "(":
                stack.append(item)
            elif item  ==")":
                try:
                    if stack[-1] =="(":
                        stack.pop()
                    else:
                        return False
                except:
                    return False
            elif item =='[':
                stack.append(item)
            elif item ==']':
                try:
                    if stack[-1] =="[":
                        stack.pop()
                    else:
                        return False
                except:
                    return False
    #使用异常处理机制是为了以防出现多个闭括号而无开括号会导致pop的时候出错,当pop出错的时候说明闭括号无对应的开括号直接返回False
            elif item =='{':
                stack.append(item)
            elif item =='}':
                try:
                    if stack[-1] =="{":
                        stack.pop()
                    else:
                        return False
                except:
                    return False
        if stack:
            return False
        else:
            return True
  • 相关阅读:
    将Python的Django框架与认证系统整合的方法
    将Python的Django框架与认证系统整合的方法
    Python的Asyncore异步Socket模块及实现端口转发的例子
    每天一个linux命令(3):du命令
    每天一个linux命令(2):file 命令
    Ubantu 使用extundelete恢复数据
    ubantu 单用户模式进入系统
    GDB 调试解析
    服务器搭建5 Samba实现文件共享
    服务器搭建4 安装其它库
  • 原文地址:https://www.cnblogs.com/hyj691001/p/10478265.html
Copyright © 2011-2022 走看看