Python3_Leetcode #20 有效的括号
思路:
采用出栈入栈思路,且该题目是 左括号必须以正确的顺序闭合。即后进的左括号一定是先闭合的。
变量:
stack = ['?']
1.遍历输入的字符串
2.如果遍历的字符为dic字典中的左括号,添加进stack 列表里
3.如果遍历的字符不为左括号,则判断是否为stack列表中最后一个添加左括号的配对右括号:如果不是则返回false,如果是则继续遍历;
4. 最后判断stack字符串里面是不是长度为1
代码:
class Solution:
def isValid(self, s: str) -> bool:
dic = {'[':']','(':')','{':'}',}
stack = ['?'] #一开始设置带1个值,是为了输入为1个右括号的测试用例,当只输入一个右括号时则取不到pop值,会报错为空
for i in s:
if i in dic:
stack.append(i)
elif dic[stack.pop()] != i :
return False
return len(stack) == 1

浙公网安备 33010602011771号