面试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
相关推荐
汉克老师4 天前
GESP2023年6月认证C++三级( 第三部分编程题(2、密码合规检测))
c++·字符串·gesp三级·gesp3级
Tisfy6 天前
LeetCode 2833.距离原点最远的点:计数
算法·leetcode·字符串·题解·模拟·计数
罗湖老棍子8 天前
Beads(信息学奥赛一本通- P1461) [POI 2010] KOR-Beads(洛谷-P3498)
算法·字符串·哈希
_小草鱼_9 天前
【数据结构】栈和队列
数据结构·数组··队列
qeen8712 天前
【数据结构】栈及其C语言模拟实现
c语言·数据结构·学习·
旖-旎13 天前
栈(验证栈序列)(5)
c++·算法·leetcode·力扣·
itman30115 天前
C语言printf输出格式:%d %f %s等用法详解
c语言·字符串·printf·格式化输出·整数
Tisfy15 天前
LeetCode 2515.到目标字符串的最短距离:从中间往两边遍历
算法·leetcode·字符串·题解·数组·遍历
庞轩px15 天前
第二篇:String、StringBuilder、StringBuffer深度剖析
java·字符串·stringbuilder·string·stringbuffer·字符串常量池
罗湖老棍子16 天前
Power Strings(信息学奥赛一本通- P1457)
算法·字符串·哈希