面试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
相关推荐
hnjzsyjyj12 天前
洛谷 AT_abc269_b [ABC269B]:Rectangle Detection
字符串
闲人编程15 天前
内存数据库性能调优
数据库·redis·字符串·高并发·哈希·内存碎片
季明洵16 天前
Java实现循环队列、栈实现队列、队列实现栈
java·数据结构·算法··队列
Tisfy17 天前
LeetCode 761.特殊的二进制字符串:分治(左右括号对移动)
算法·leetcode·字符串·递归·分治
ValhallaCoder17 天前
hot100-栈
数据结构·python·算法·
识君啊18 天前
Java 栈 - 附LeetCode 经典题解
java·数据结构·leetcode·deque··stack·lifo
季明洵18 天前
Java实现栈和最小栈
java·开发语言·数据结构·
hnjzsyjyj20 天前
洛谷 P8738:[蓝桥杯 2020 国 C] 天干地支 ← string
蓝桥杯·字符串·天干地支
闻缺陷则喜何志丹22 天前
【C++DFS 马拉车】3327. 判断 DFS 字符串是否是回文串|2454
c++·算法·深度优先·字符串·力扣·回文·马拉车