有效字符串需滿足:
1、左括號必須用相同類型的右括號閉合。
2、左括號必須以正確的順序閉合。
注意空字符串可被認爲是有效字符串。
示例 1:
輸入: "()"
輸出: true
示例 2:
輸入: "()[]{}"
輸出: true
示例 3:
輸入: "(]"
輸出: false
示例 4:
輸入: "([)]"
輸出: false
示例 5:
輸入: "{[]}"
輸出: true
思路:使用棧後進先出的特性先將'('、'['、 '{' 存進去,當遇到')'、']'、 '}' 時則彈出來。
解題代碼:
class Solution(object):
def isValid(self, s):
"""
:type s: str
:rtype: bool
"""
stack1=[]
length=0
for i in s:
if i == '(' or i == '[' or i == '{':
stack1.append(i)
length+=1
elif i == ')':
if length==0:
return False
else:
if stack1[length-1] == '(':
stack1.pop()
length-=1
else:
stack1.append(i)
length+=1
elif i == ']' :
if length==0:
return False
else:
if stack1[length-1] == '[':
stack1.pop()
length-=1
else:
stack1.append(i)
length+=1
elif i == '}':
if length==0:
return False
else:
if stack1[length-1] == '{':
stack1.pop()
length-=1
else:
stack1.append(i)
length+=1
if stack1:
# print '0'
return False
else:
# print '1'
return True