20. Valid Parentheses Leetcode Python
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
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