Leetcode-#20有效的括号(堆栈)

问题描述

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

括号必须以正确的顺序关闭,"()" 和 "()[]{}" 是有效的但是 "(]" 和 "([)]" 不是。

解答方法

这是一个堆栈问题,主要注意先入后出,最后堆栈为空。

class Solution:
    def isValid(self, s):
        """
        :type s: str
        :rtype: bool
        """
        x=['(','[','{']
        y=[')',']','}']
        z=['()','{}','[]']
        stack = []
        for char in s :
            if char in x:
                stack.append(char)
            elif char in y:
                if len(stack)==0 :
                    return False
                elif stack[-1]+char in z:
                    stack.pop(-1)
                else:
                    return False
        if stack==[]:
            return True
        else:
            return False
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,918评论 0 38
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,207评论 0 13
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,467评论 0 5
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • 早起,去了机场的KFC吃了我的早餐。一个帕尼尼和一份粥。怎么说呢,帕尼尼的芝士口感不好吃,酸酸的,损了我的芝士感受...
    芬儿的默默阅读 522评论 0 0