1. 程式人生 > >LeetCode刷題記錄——第二十題(有效的括號)

LeetCode刷題記錄——第二十題(有效的括號)

20.有效的括號

題目描述

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

有效字串需滿足:

左括號必須用相同型別的右括號閉合。
左括號必須以正確的順序閉合。
注意空字串可被認為是有效字串。

示例1:

輸入: “()”
輸出: true

示例2:

輸入: “(]”
輸出: false

思路分析

  • 確定括號是否匹配的方法:利用字典的key-value對,將前一項pop出來看是否對應著字典中的value值
  • 當第一個字元為正括號時,append進臨時儲存的List中
    1. 正括號正常匹配,
    2. 匹配錯誤
  • 當第一個字元為反括號時,不符合規則,返回False(這一點需要注意處理)

程式碼實現

class Solution:
    def isValid(self, s):
        """
        :type s: str
        :rtype: bool
        """
        mp ={ ']':'[' , '}':'{' , ')':'(' }
        temp = []
        for
ch in s: if ch in '[{(': temp.append(ch) else: if not temp or mp[ch] != temp.pop(): #前一個用來保證第一個ch不是反括號 return False return not temp