首页 > 其他分享 >有效括号序列

有效括号序列

时间:2024-03-14 18:13:11浏览次数:35  
标签:字符 有效 item 括号 dict 序列 stack

题目
描述

给出一个仅包含字符’(’, ’)’, ’{’, ’}’, ’[‘和’]’, 的字符串,判断给出的字符串是否是合法的括号序列,括号必须以正确的顺序关闭,"()"和"()[]{}"都是合法的括号序列,但"(]"和"([)]"
不合法。
数据范围:字符串长度 0≤n≤10000
要求:空间复杂度O(n),时间复杂度O(n)

思路
采用进栈出栈的思想,先进后出,后进先出,如果碰到左字符,就进栈,如果遇到右字符,则它对应的左字符就应该出栈。如果没有对应的左字符或者栈为空,就说明输入字符串就是不合法的括号序列。
代码:

class Solution:
    def isValid(self, s: str)->bool:
        map_dict = {"{": "}", "[": "]", "(": ")"}
        stack = []
        for item in s:
            if item in map_dict.keys():
                stack.append(item)
            else:
                if len(stack) == 0 or item != map_dict[stack[-1]]:
                    return False
                else:
                    stack.pop()
        if len(stack) != 0:
            return False
        return True

标签:字符,有效,item,括号,dict,序列,stack
From: https://www.cnblogs.com/bonne-chance/p/18073629

相关文章

  • [Dubbo] Dubbo 反序列化将Pair转化成HashMap的问题
    问题描述Dubbo在3.2.x版本中,类检查级别默认是STRICT3.1版本中默认为WARN告警级别,3.2版本中默认为STRICT严格检查级别。不配置的情况下,会将名单以外的类型转化成Map。如何支持Pair的序列化和反序列化dubbo.application.serialize-check-status=WARN新建允许的名......
  • Rust解析JSON,结构体序列化和反序列化
    Rust参考教程:HereJSON一种常用的由键值对组成的数据对象;本文将通过多个例子讲解在Rust中如何解析JSON内容,以及如何将结构体转换成JSON字符串。在Rust中解析JSON文本通常需要使用一个JSON库。Rust标准库中有一个名为serde的库,它提供了序列化和反序列化结构体和其他数据类型的......
  • Serializer 序列化 -----视图层传入一个变量到序列化器的方法
    fromrest_frameworkimportserializersclassMyModelSerializer(serializers.ModelSerializer):classMeta:model=MyModelfields=['field1','field2']defto_representation(self,instance):......
  • 解决Thymeleaf模板修改不实时更新问题的有效方法
    修改yml文件,thymeleaf中的prefix:file:D:/resources是重点,如果只修改了cache:false也会不生效spring:thymeleaf:#不启用模版缓存cache:false#修改模板存放位置,使用file方式修改模板文件实时生效不需要重新编译prefix:file:D:/resources#如......
  • 【Web】浅聊XStream反序列化本源之恶意动态代理注入
    目录简介原理复现具体分析之前我们反序列化了个什么?XStream反序列化的朴素通识具体分析第一步:unmarshal解组第二步:readClassType获取动态代理类的Class对象第三步:调用convertAnother对动态代理类进行实例化第四步:调用动态代理类方法触发invoke前文:【Java】萌新的......
  • 复现反序列化
    1、复现shiro的反序列化漏洞,实现反弹shell2、演示渗透测试和打点的手段,说明二者的区别一个指定了资产范围,一个从公司名开始收集3、描述hw蓝方有哪些组,工作内容有什么监测组:看态势感知,waf,写日报判断告警是否为真实告警研判组:处置组:根据真实告警,防火墙封禁攻击IP溯源组:尝试......
  • 有关幅值、振幅、峰值、峰峰值、有效值、平均值的区分
    本文以Ut=10sin(wt)的正弦电压为例:幅值:10V振幅:10V峰值(Vp:Peak):10V峰峰值(Vpp:Peaktopeak):20V有效值(Vrms):10/2^(1/2)-->峰值除以根号二平均值(Vavg):这边提以下半波整流与全波整流下平均值与峰值的关系半波整流:Vavg=0.45Vp全波整流:Vavg=0.9Vp注意:......
  • R语言【paleoTS】——compareModels:比较模型适合于古生物学时间序列
    Package paleoTS version0.5.3Description获取模型拟合函数的输出,并将模型拟合信息(对数似然、AICc等)编译成一个方便的表。UsagecompareModels(...,silent=FALSE,sort=FALSE)Arguments参数【...】:任意数量的模型拟合(as.paletsfit)对象。参数【silent】......
  • 序列 DP
    (1)LOJP507接竹竿有\(n\)张牌排成一排,每张牌有属性\((c_i,v_i)\)。保证\(c_i\lek\)。每次操作选择两张牌\(l,r\)满足\(c_l=c_r\),删除\(l\simr\)中的所有牌,并获得\(\sum_{i=l}^rv_i\)的收益。求最大的收益。\(n,k\le10^6\)。设状态\(f_i\)表......
  • 如何有效进行企业内容管理
    对企业进行内容管理的重要性不容忽视,因为有效的内容管理能够给组织带来多方面的益处。比如提高员工工作效率、使员工快速检索和共享信息、员工可以实时合作,提高工作效率和质量、确保知识不会随着员工离职而流失、员工在任何地点都能高效地访问和处理企业内容、更快地响应......