LeetCode-20

  • 問題
    給定一個只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判斷字符串是否有效。
    有效字符串需滿足:
    左括號必須用相同類型的右括號閉合。
    左括號必須以正確的順序閉合。
    注意空字符串可被認爲是有效字符串。
    示例 1:
    輸入: “()”
    輸出: true
    示例 2:
    輸入: “()[]{}”
    輸出: true
    示例 3:
    輸入: “(]”
    輸出: false
    示例 4:
    輸入: “([)]”
    輸出: false
    示例 5:
    輸入: “{[]}”
    輸出: true

  • 解答

class Solution(object):
    def isValid(self, s):
        """
        :type s: str
        :rtype: bool
        """
        if len(s) % 2 != 0:
            return False
        stack = []
        params = {')': '(', ']': '[', '}': '{'}
        for c in s:
            if c not in params:
                stack.append(c)
            else:
                peak = len(stack) - 1
                if peak >= 0 and stack[peak] == params.get(c):
                    stack.pop(peak)
        return len(stack) == 0
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章