您当前的位置: 首页 >  Python

Better Bench

暂无认证

  • 5浏览

    0关注

    681博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Leetcode刷题Python】20. 有效的括号

Better Bench 发布时间:2022-05-11 17:37:30 ,浏览量:5

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
关注
打赏
1665674133
查看更多评论
立即登录/注册

微信扫码登录

0.1375s