Given a string containing just the characters '('
, ')'
, '{'
, '}'
, '['
and ']'
, determine if the input string is valid.
An input string is valid if:
- Open brackets must be closed by the same type of brackets.
- Open brackets must be closed in the correct order.
Note that an empty string is also considered valid.
Example 1:
Input: "()" Output: true
Example 2:
Input: "()[]{}" Output: true
Example 3:
Input: "(]" Output: false
Example 4:
Input: "([)]" Output: false
Example 5:
Input: "{[]}" Output: true
class Solution(object):
def isValid(self, s):
"""
:type s: str
:rtype: bool
"""
dic ={'(':')','{':'}','[':']'}
lis=[] #保存s中括号
for charactor in s:
if charactor in dic.keys(): #如果是'(','[','{',则保存到lis中
lis.append(charactor)
if charactor in dic.values(): #如果是')',']','}'
if len(lis)==0: #如果lis为空,也就是lis中没有保存'(','[','{'
return False
elif dic[lis[-1]] == charactor: #如果lis之前保存的最后一项正好对应上这个符号
lis.pop()
else:
return False
return len(lis) == 0