题目描述:
- 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。
- 有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
-示例:
输入: "()[]{}"
输出: true
python代码:
- 思路:使用 ’栈‘ 先进后出 的思想匹配括号。
class Solution:
def isValid(self, s: str) -> bool:
dict = {'(':')', '{':'}', '[':']'}
s = s.split(' ') #去除空格
s = ''.join(s)
stack = []
for i in range(len(s)):
if s[i] in dict:
stack.append(s[i])
elif len(stack) > 0 and dict[stack[-1]] == s[i]: #注意防止stack为空的情况造成索引错误
stack.pop()
else:
return False
if len(stack) == 0:
return True
else:
return False