有效括號題目解答

有效括號題目解答

  • 給定一個只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判斷字符串是否有效。

  • 有效字符串需滿足:

    1. 左括號必須用相同類型的右括號閉合。
    2. 左括號必須以正確的順序閉合。
  • 注意空字符串可被認爲是有效字符串。
    在這裏插入圖片描述

  • 解題思路:

    1. 左右括號必須相等,那麼先記錄不同左括號出現的次數,生成對應的右括號,壓棧。先進後出。適合數據類型列表。
    2. 如果一開始就出現右括號,那麼一定失敗,可以提前退出。
class Solution(object):
    def isValid(self, s):
        """
        :type s: str
        :rtype: bool
        """
        arr = []
        dt = {"(":")","[":"]","{":"}"}
        for k,i in enumerate(s):
            if len(s)-k<len(arr):
                return False
            if i in dt:
                arr.append(dt[i])
            elif len(arr)>=1 and i == arr[-1]:
                arr.pop()
            else:
                return False
        return False if len(arr) else True
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章