Leetcode 20. 有效的括号

心路历程:

看到括号问题直接想到栈,但是纠结了一下题目中给出的 '2. 左括号必须以正确的顺序闭合' 这一约束,其实这句话的意思简化了题目要求,'[(])'这样的字符串就不满足要求了。

注意的点:

1、注意最后需要栈为空的时候才能返回true,否则代表左括号可能会多余。

解法:栈

python 复制代码
class Solution:
    def isValid(self, s: str) -> bool:
        # 栈
        from collections import deque
        stack = deque([])
        lefts, rights = ['(', '[', '{'], [')', ']', '}']
        mappings_right = {')':'(', ']':'[', '}':'{'}
        for c in s:
            if c in lefts:
                stack.append(c)
            else:
                if len(stack) == 0: return False
                if stack.pop() != mappings_right[c]: return False
        if len(stack) == 0: return True
        else: return False
相关推荐
报错小能手3 分钟前
数据结构 带头节点的双向循环链表
数据结构·算法·链表
Yolo_TvT10 分钟前
数据结构:算法复杂度
数据结构·算法
OKkankan26 分钟前
多态概念及使用
开发语言·数据结构·c++·算法
nn在炼金29 分钟前
FlashAttention 1 深度解读:原理、价值、应用与实战
人工智能·算法
WHS-_-202239 分钟前
Channel Estimation for mmWave High-Mobility Systems With 5G New Radio OFDM (I)
算法·5g
.格子衫.43 分钟前
026动态规划之跨步DP——算法备赛
算法·动态规划
roman_日积跬步-终至千里43 分钟前
【模式识别与机器学习(7)】主要算法与技术(下篇:高级模型与集成方法)之 扩展线性模型(Extending Linear Models)
人工智能·算法·机器学习
做怪小疯子43 分钟前
LeetCode 热题 100——二叉树——二叉树的最大深度
算法·leetcode·职场和发展
Maỿbe1 小时前
暴打力扣之优先级队列(堆)
算法·leetcode·职场和发展
Swift社区1 小时前
LeetCode 438 - 找到字符串中所有字母异位词
算法·leetcode·职场和发展