菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
0
0

算法题:判断括号字符串是否有效

原创
05/13 14:22
阅读数 473

题目来源于力扣

理论基础

堆栈&队列

判断括号字符串是否有效

题目描述

给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。

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

注意空字符串可被认为是有效字符串。

示例:
>

输入: "()"
输出: true

输入: "()[]{}"
输出: true

输入: "(]"
输出: false

输入: "([)]"
输出: false

输入: "{[]}"
输出: true

解题思路

栈,两两匹配

Python 解法

def isValid(self, s):
    stack = []
    paren_map = {')':'(', ']':'[', '}':'{'}

    for c in s:
        if c not in paren_map:
            stack.apend(c)
        elif not stack or paren[c] != stack.pop():
            return False
    return not stack

发表评论

0/200
0 点赞
0 评论
收藏
为你推荐 换一批