題目來源:中國大學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 == []
