T20 有效的括号

桌桌 2022-8-12 60 8/12

T20 有效的括号

题目描述:

T20 有效的括号

思路:只需要判断当前括号是否与栈中的栈顶元素,当前括号如果是左括号直接放入,如果是右括号,如果不匹配则一定出错,如果匹配则只需要将匹配好的括号出栈,检查下一个元素即可。

代码如下:

class Solution:
    def isValid(self, s: str) -> bool:
        pstack = ["x"]
        for i in range(len(s)):              
            if s[i] == ")" and pstack[-1] == "(":
                pstack.pop()
            elif s[i] == ")" and pstack[-1] != "(":
                return False
            elif s[i] == "]" and pstack[-1] == "[":
                pstack.pop()
            elif s[i] == "]" and pstack[-1] != "[":
                return False                
            elif s[i] == "}" and pstack[-1] == "{":
                pstack.pop()
            elif s[i] == "}" and pstack[-1] != "{":
                return False
            else:
                pstack.append(s[i])

        return True if len(pstack)==1 else False

结果如下:

T20 有效的括号

看了看代码,总觉得非常臃肿,于是改了一下,用字典存储了一下,不需要一个个写判断了,代码如下:

class Solution:
    def isValid(self, s: str) -> bool:
        mydict = {")":"(","]":"[","}":"{"}
        pstack = ["x"]
        for i in range(len(s)):  
            if s[i] in mydict:
                if pstack[-1] == mydict[s[i]]:
                    pstack.pop()
                else:
                    return False
            else:
                pstack.append(s[i])
        return True if len(pstack)==1 else False

结果如下所示:

T20 有效的括号

- THE END -

桌桌

8月16日01:10

最后修改:2022年8月16日
0

非特殊说明,本博所有文章均为博主原创。