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
相关推荐
Neil今天也要学习17 小时前
永磁同步电机无速度算法--永磁同步电机转子位置精确估计的误差抑制方法
算法
Irene199117 小时前
JavaScript 常见算法复杂度总结(大O表示法)
javascript·算法
开心比对错重要17 小时前
进程、线程、虚拟线程详解及线程个数设置
java·jvm·算法·面试
爱学大树锯17 小时前
【594 · 字符串查找 II】
java·开发语言·算法
m0_6924571017 小时前
图像噪点消除
人工智能·算法
2401_8414956417 小时前
【Python高级编程】图着色动态可视化 APP
python·算法·matplotlib·tkinter·回溯法·图着色算法·动态可视化工具
youngee1118 小时前
hot100-53搜索旋转排序数组
数据结构·算法·leetcode
烟雨梵兮18 小时前
-刷题小结19
算法
爱学大树锯18 小时前
1361 · 文字并排
算法
Tisfy18 小时前
LeetCode 2483.商店的最少代价:两次遍历 -> 一次遍历
算法·leetcode·题解·遍历