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
posted @ 2021-07-14 21:30  lms21  阅读(53)  评论(0)    收藏  举报