題目來源:中國大學MOOC-北京大學-數據結構與算法python版本
題目內容:
給定一個只包括
'(',')','{','}','[',']'
的字符串,判斷字符串是否有效。
有效字符串需滿足:
-
左括號必須用相同類型的右括號閉合。
-
左括號必須以正確的順序閉合。
注意空字符串可被認為是有效字符串。
輸入格式:
一行字符串
輸出格式:
True或False,表示該輸入是否為合法括號串
輸入樣例1:
([])
輸出樣例1:
True
輸入樣例2:
{{)]}
輸出樣例2:
False
時間限制:500ms內存限制:32000kb
解法1:
class Solution: def isValid(self, s): while '{}' in s or '()' in s or '[]' in s: s = s.replace('{}', '') s = s.replace('[]', '') s = s.replace('()', '') return s == ''
解法2:
class Solution(object): def isValid(self, s): stack = [] judge = {'()','[]','{}'} for i in s: if not stack: stack.append(i) else: if stack[-1]+i in judge: stack.pop() else: stack.append(i) return stack == []