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
相关推荐
tachibana27 分钟前
hot100 课程表(207)
java·数据结构·算法·leetcode
神仙别闹8 分钟前
编写基于C++ Huffman 算法的无损压缩程序和解压程序
java·c++·算法
大鱼>22 分钟前
宠物活动轨迹追踪系统:GPS/BDS+UWB+BLE多定位融合方案
人工智能·深度学习·算法·iot·宠物
旖-旎42 分钟前
《LeetCode 646 最长数对链 || LeetCode 1143 最长公共子序列》
c++·算法·leetcode·动态规划
Frostnova丶1 小时前
(15)LeetCode 189. 轮转数组
数据结构·算法·leetcode
Lumos1862 小时前
故障保护与鲁棒性(十七)
算法
手写码匠2 小时前
从零实现大模型推理引擎:Continuous Batching 与动态调度系统深度解析
人工智能·深度学习·算法·aigc
wabs6662 小时前
关于单调栈【力扣503.下一个更大元素II的思考】
算法·单调栈
c238562 小时前
下篇:伸缩魔法!进阶吃透可变滑动窗口篇
c++·算法
186******205312 小时前
RuView 新手快速上手与实战指南
算法