美文网首页Leetcode
20. Valid Parentheses

20. Valid Parentheses

作者: oo上海 | 来源:发表于2016-08-03 07:10 被阅读20次

    20. Valid Parentheses

    题目:

    https://leetcode.com/problems/valid-parentheses/

    难度:

    Easy

    虽然知道肯定是用stack来解决,但是我是看了hint才自己解答的,因为可能想复杂了。

    因为一共只有三种状况"(" -> ")", "[" -> "]", "{" -> "}".

    一遇到左括号就入栈,右括号出栈,这样来寻找对应

    需要检查几件事:

    • 右括号时stack里还有没有东西
    • 出stack的是否对应
    • 最终stack是否为空
    class Solution(object):
        def isValid(self, s):
            """
            :type s: str
            :rtype: bool
            """
            leftP = "([{"
            rightP = ")]}"
            
            stack = []
            for char in s:
                if char in leftP:
                    stack.append(char)
                elif char in rightP:
                    if stack == []:
                        return False
                    item = stack.pop()
                    if char == "]" and item != "[":
                        return False
                    elif char == ")" and item != "(":
                        return False
                    elif char == "}" and item != "{":
                        return False
            return stack == []
    

    相关文章

      网友评论

        本文标题:20. Valid Parentheses

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