Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.
The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]" are not.
这题需要用到stack.
做法是将'(' ‘[’和'{'依次入栈 当遇到与之对应的另外一半的括号时候就出栈。 如果不符合就返回false
最后当栈不是空的时候也是返回false
否则最后为true
1. we push '(', '[','{'
2. when we encounter ')' ,']','}' we pop the stack.
3.if the parentheses do not match return false,
4. if the final stack is not empty return false
5. return true
class Solution:
# @return a boolean
def isValid(self, s):
stack=[]
if len(s)==0:
return True
for elem in s:
if elem=='(' or elem=='[' or elem=='{':
stack.append(elem)
if elem==')':
if len(stack)==0 or stack and stack.pop()!='(':
return False
elif elem==']':
if len(stack)==0 or stack and stack.pop()!='[':
return False
elif elem=='}':
if len(stack)==0 or stack and stack.pop()!='{':
return False
if len(stack)!=0:
return False
else:
return True