美文网首页Leetcode刷题笔记
第二十九天 Valid Parentheses

第二十九天 Valid Parentheses

作者: 业余马拉松选手 | 来源:发表于2018-09-19 00:34 被阅读6次

这也是一道非常经典的题目了

利用栈的特性

但写起来也还真不是那么简单,知道怎么做,和做出来,还是有差距的

思路就是,如果是左边的括号就入栈,如果是右边的括号,先看下栈是不是空,如果是空,就是非法的,如果不是空,要看下能不能匹配,如果能匹配,就把栈顶元素弹出,如果不能匹配,就非法

class Solution(object):
    def isValid(self, s):
        stack = []
        dic = {')':'(',']':'[','}':'{'}
        arr = ['(','[','{']
        for c in s:
            if c in arr:
                stack.append(c)
            elif not stack or stack.pop() != dic[c]:
                return False
        return len(stack) == 0

相关文章

网友评论

    本文标题:第二十九天 Valid Parentheses

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