Valid Parentheses 括号开闭

Easy, Dynamic Programming

Question

给定string只含 '(', ')', '{', '}', '[', ']',判断string是否valid

Example: "()[]{}": true
"([)]" : false

Solution

论坛一个coder的方法,做减法,把配对的括号一一去除。想法非常简单,缺点是complexity会比较高。

class Solution(object):
    def isValid(self, s):
        """
        :type s: str
        :rtype: bool
        """
        if len(s) % 2 != 0:
            return False
        while "()" in s or "[]" in s or "{}" in s:
            s = s.replace("()","").replace("[]","").replace("{}","")
        return s == ''

更加有效的方法是利用堆栈。

class Solution(object):
    def isValid(self, s):
        """
        :type s: str
        :rtype: bool
        """
        dic = {'(':')','{':'}','[':']'}
        stack = []
        for c in s:
            if c in dic:
                stack.append(c)
            elif stack == [] or dic[stack.pop()] != c:
                return False
        return stack == []
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,356评论 0 33
  • 注:该篇文章摘自于github.com/vhf/free-programming-books,英文版。访问该项目获...
    stuha阅读 9,556评论 0 13
  • 2017.10.9雨 早起听英语。说是早起,实际已经到了六点,睁一次眼,再睁开一次,在六点一刻的时候,我拿起了耳机...
    灸灸微笑阅读 1,693评论 0 0
  • 豆丁有个朋友叫小为。小为的爸爸是理工男,小为的妈妈一直在我面前夸他的智商很高,围棋也下得特别的好。某日在小为家玩。...
    东与东妈阅读 1,486评论 0 1
  • 我高中的时候,不是一个好学生。 我的成绩还不错,但也只是在中上徘徊,从没进过前五名。我分数总上不去的主要原因是我偏...
    满空山阅读 5,721评论 3 2

友情链接更多精彩内容