天天看點

LeetCode第20題:有效的括号

題目

給定一個隻包括 '(',')','{','}','[',']' 的字元串,判斷字元串是否有效。

有效字元串需滿足:

1、左括号必須用相同類型的右括号閉合。

2、左括号必須以正确的順序閉合。

3、注意空字元串可被認為是有效字元串。

  • 示例1:

    輸入:

    "()"

    輸出:

    true

  • 示例2:

    "()[]{}"

    true

  • 示例3:

    "(]"

    false

  • 示例4:

    "([)]"

    false

  • 示例5:

    "{[]}"

    true

代碼

class Solution(object):
    def isValid(self, s):
        """
        :type s: str
        :rtype: bool
        """
        stack = []
        dict = {"]":"[", "}":"{", ")":"("}
        for char in s:
            if char in dict.values():
                stack.append(char)
            elif char in dict.keys():
                if stack == [] or dict[char] != stack.pop():
                    return False
            else:
                return False
        return not stack           

本文連結:

時光不寫部落格-有效的括号

繼續閱讀