给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
示例1:
输入: "()[]{}"
输出: true
示例2:
输入: "([)]"
输出: false
示例3:
输入: "{[]}"
输出: true
题解:stack遇到成对的即删除,还要考虑stack为空时无效的情况
class Solution:
def isValid(self, s: str) -> bool:
if not s:
return True
elif s[0] in [')',']','}']:
return False
res = []
for i in range(len(s)):
if s[i] in ['(', '[', '{']:
res.append(s[i])
elif res and res[-1] + s[i] in ['()','[]','{}']:
res.pop()
else:
return False
return not res