面试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
相关推荐
hope_wisdom2 天前
C/C++数据结构之用链表实现栈
c语言·数据结构·c++·链表·
胡西风_foxww6 天前
git 添加除了包含特定字符串的文件
git·字符串·文件·add·添加·特定·包含
爱学习的小鱼gogo6 天前
python 单词搜索(回溯-矩阵-字符串-中等)含源码(二十)
开发语言·数据结构·python·矩阵·字符串·回溯·递归栈
Dream it possible!11 天前
LeetCode 面试经典 150_栈_简化路径(53_71_C++_中等)(栈+stringstream)
c++·leetcode·面试·
Dream it possible!11 天前
LeetCode 面试经典 150_栈_有效的括号(52_20_C++_简单)(栈+哈希表)
c++·leetcode·面试··哈希表
顾晨阳——11 天前
C/C++字符串
c语言·c++·字符串
Chloeis Syntax12 天前
栈和队列笔记2025-10-12
java·数据结构·笔记·
Syntech_Wuz14 天前
从 C 到 C++:容器适配器 std::stack 与 std::queue 详解
数据结构·c++·容器··队列
希赛网16 天前
软考软件设计师常考知识点:(三)数据结构
数据结构·二叉树·字符串·软考·软件设计师·线性表
要一起看日出18 天前
数据结构-----栈&队列
java·数据结构··队列