美文网首页
Leetcode-#20有效的括号(堆栈)

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

作者: Dy1an | 来源:发表于2018-04-11 13:26 被阅读0次

问题描述

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

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

解答方法

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

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

相关文章

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

    问题描述 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 括号必须...

  • 20.有效括号

    检测括号对 (),{},[]是否有效。 思路:利用堆栈。遇到左括号压入堆栈,遇到右括号从堆栈弹出并比较。注意(),...

  • 利用堆栈解决的问题

    有效括号问题 题目 解法 遇到左括号时push,遇到右括号pop。 等待时间问题 题目 解法 将天数指针存入堆栈中...

  • 回溯算法和深度优先搜索(二)

    先看一道题目: 括号生成。 输入一个整数 ,罗列出所有有效的括号组合。有效的括号组合是指 左括号开始,右括号结束,...

  • 判断括号是否合法

    用堆栈来做,比较经典 左括号就push 右括号就peak,查看栈顶是否有匹配的括号:有就把栈顶元素pop,没有就报...

  • 括号生成 (有效括号)

    题目 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例: 输入...

  • 有效括号

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

  • 有效括号

    import java.util.*; /** 给定一个只包括 '(',')','{','}','[',']' 的...

  • 有效括号

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

  • 有效的括号

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

网友评论

      本文标题:Leetcode-#20有效的括号(堆栈)

      本文链接:https://www.haomeiwen.com/subject/ywrahftx.html