有效括號題目解答
-
給定一個只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判斷字符串是否有效。
-
有效字符串需滿足:
- 左括號必須用相同類型的右括號閉合。
- 左括號必須以正確的順序閉合。
-
注意空字符串可被認爲是有效字符串。
-
解題思路:
- 左右括號必須相等,那麼先記錄不同左括號出現的次數,生成對應的右括號,壓棧。先進後出。適合數據類型列表。
- 如果一開始就出現右括號,那麼一定失敗,可以提前退出。
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