面试150 有效的括号

思路

通过栈去模拟,如果是遇到左括号,右括号进栈,如果当前栈一直为空或者当前元素与栈顶元素不相同,则说明不是有效的括号,直接返回False,然后如果当前元素和栈顶元素匹配,则将栈内的元素弹出。最后如果栈为空,说明是有效的括号,反则不是

python 复制代码
class Solution:
    def isValid(self, s: str) -> bool:
        stack=[]
        for i in range(len(s)):
            if s[i]=='(':
                stack.append(')') #右括号进栈
            elif s[i]=='{':
                stack.append('}')
            elif s[i]=='[':
                stack.append(']')
            elif len(stack)==0 or s[i]!=stack[-1]:#短路效应,需要先写前一个,不然可能遇到空栈操作
                return False
            else:
                stack.pop()
        if len(stack)==0:
            return True
        else:
            return False
相关推荐
会的全对٩(ˊᗜˋ*)و7 天前
【数据结构】栈
数据结构·经验分享·
float_com18 天前
【单调栈】-----【Largest Rectangle in a Histogram】
算法··单调栈
Cherl.22 天前
C++ 函数模板与类模板
开发语言·c++·类和对象··函数模板·类模板
CS创新实验室25 天前
CPython 局部变量存储机制:从 “栈上存储“ 看语言实现差异
python···cpython·局部变量
笑口常开xpr1 个月前
线 性 数 据 结 构 双 雄:栈 与 队 列 的 原 理、实 现 与 应 用
数据结构··队列
积极向上的向日葵1 个月前
有效的括号题解
数据结构·算法·
Tisfy1 个月前
LeetCode 2434.使用机器人打印字典序最小的字符串:贪心(栈)——清晰题解
leetcode·机器人·字符串·题解·贪心·
芜湖xin1 个月前
【题解-洛谷】B4278 [蓝桥杯青少年组国赛 2023] 简单算术题
算法·
零叹1 个月前
篇章七 数据结构——栈和队列
java·数据结构·面试·面试题·双端队列··队列