Leetcode刷题Python20. 有效的括号

Posted Better Bench

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode刷题Python20. 有效的括号相关的知识,希望对你有一定的参考价值。

1 题目

给定一个只包括 ‘(’,‘)’,‘’,‘’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。

有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。

2 解析

利用栈来实现,遇到左括号进栈,遇到右括号,就弹出栈顶,并对比括号类型是否相同。如果相同就继续遍历,直到遍历完,栈为空则返回True。如果不同,返回False。
注意:由于栈为空,有边界条件为报错,所以栈里存放一个无用字符,防止边界条件。则最后的边界条件是栈的长度为1。

3 python 实现

class Solution:
    def isValid(self, s: str) -> bool:
        d = '(':')','':'','[':']','-':'-'
        stack = ['-']
        for c in s:
            if c in d.keys():
                stack.append(c)
            elif d[stack.pop()]!=c:
                return False
        return len(stack)==1
创作打卡挑战赛 赢取流量/现金/CSDN周边激励大奖

以上是关于Leetcode刷题Python20. 有效的括号的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode刷题20-简单-有效的括号

LeetCode刷题-20.有效括号(JS)

[JavaScript 刷题] 栈 - 有效的括号, leetcode 20

[JavaScript 刷题] 栈 - 有效的括号, leetcode 20

Leetcode刷题20. 有效的括号

Leetcode刷题100天—20. 有效的括号(栈)—day02