首页 > 其他分享 >LeetCode -- 394. 字符串解码(栈处理字符串问题)

LeetCode -- 394. 字符串解码(栈处理字符串问题)

时间:2023-09-05 13:22:06浏览次数:39  
标签:multi ch -- res cres 394 字符串 stack

 

我们用栈同时维护当前字符串和倍数以及要加倍的字符串

当遇到"["时,我们保存当前字符串,即将当前字符 cres 串入栈; 当遇到"]"时,res = cres + 倍数 * 应加倍的字符串

class Solution:
    def decodeString(self, s: str) -> str:
        stack, res, multi = [], "", 0
        for ch in s:
            if ch == "[": //保存当前字符串和当前倍数
                stack.append([multi, res])
                res, multi = "", 0
            elif ch == "]":
                curm, cres = stack.pop()
                res = cres + curm * res  //之前保存的字符串 + 应加倍的字符串 * 倍数
            elif "0" <= ch <= "9":
                multi = multi * 10 + int(ch)
            else:
                res += ch
            
        return res

 

标签:multi,ch,--,res,cres,394,字符串,stack
From: https://www.cnblogs.com/zk6696/p/17679337.html

相关文章

  • python request上传多个文件和其他字段
    使用 requests 库可以方便地上传多个文件和其他字段。当使用Python的requests.post函数时,您可以在其中添加异常处理来捕获可能的网络错误或HTTP错误。 importrequestsurl='http://cbim.com/upload'files={'file1':('file1.txt',open('file1.txt','rb'),'tex......
  • 抠图的几种方法
    抠图的几种方法1.方法一:通道抠图套索工具框出主体-->ctrl+j复制一份-->在通道中选择对比度明显的一个通道-->复制一份明显的通道-->ctrl+L调整色阶-->按住ctrl点击通道选中--->在图层中对复制的添加蒙版--->ctrl+I反选就抠出图片来了2.方法二:蒙版抠图用钢笔......
  • nginx负载均衡结构示例
    Linux系统-部署-运维系列导航 使用说明nginx负载均衡需要使用stream模块,支持HTTP与TCP服务。此处仅说明负载均衡的配置结构,具体参数请自行查阅相关资料。 Nginx负载均衡策略nginx自有策略轮询(默认)权重(weight)IP地址哈希(ip_hash)最小连接数(least_conn......
  • 类中使用fixture
    importjsonimportpprintimportpytestfromSlience.utils.login_utilimportLoginfromSlience.utils.request_utilimportSendRequestfromSlience.utils.yaml_utilimportread_yaml@pytest.fixture(scope='class',autouse=False)defmy_fixture()......
  • HBASE shell操作CLI
    server查看hbase(main)>statushbase(main)>version创建命名空间:namespace指的是一个表的逻辑分组,同一组中的表有类似的用途,相当于关系型数据库中的database创建该命名空间的表:hbase(main):060:0>create_namespace'test1'hbase(main):061:0>create'test1:test','f1',�......
  • 反伪造发件人邮箱地址发送邮件-SPF测试工具.zip
    反伪造发件人邮箱地址发送邮件-SPF测试工具说明:本软件是由邮箱资料站旗下邮箱反垃圾邮件过滤产品技术部独家研制开发,可伪造任意的邮箱发送邮件,对市面上的所有的邮箱都有显著的效果,当然也会有个别的邮箱的拦截系统比较完善,不可避免的可能会进入到垃圾箱里,研究此产品的目的主要是希......
  • node.Js
    创建Node.js应用步骤一、使用require指令来加载和引入模块语法格式如下:constmodule=require('module-name');其中,module-name可以是一个文件路径(相对或绝对路径),也可以是一个模块名称,如果是一个模块名称,Node.js会自动从node_modules目录中查找该模块。require指令会返回......
  • 8、ITSM基本概念(2)
    6、流程和职能:7、故障管理:(1)故障管理的输入和输出:(2)故障管理的目标:优先解决影响度大的事件;(3)故障管理的指标:(4)故障管理的流程:8、问题管理:(1)问题管理的输入和输出:(2)问题管理的目标:(3)问题管理的指标:(4)问题的管理流程:9、ITIL故障管理和问题管理的区别:(1)区别:(2)故障管理侧重于是......
  • Palo Alto防火墙---VM虚拟机版
    PA防火墙有虚拟机版的,功能和物理机是一样的,不管是做实验还是真实环境部署都很方便。在这里我们聊两个问题:第一:网卡的数量我们在VM环境下部署,可以直接下载OVA格式的文件,然后通过部署OVF模板的方式一步步完成OVA文件的导入,导入完成,虚拟机也就部署完成了。部署完成之后,默认情况下系统......
  • 自定义企业培训系统:源码定制与扩展指南
    在现代企业中,持续学习和培训已经成为成功的关键要素之一。企业培训系统的存在已经变得不可或缺,因为它们允许企业为员工提供高质量的培训和教育,以提高他们的技能水平并满足不断变化的业务需求。然而,通用的培训系统可能无法满足每个企业的特定需求,这就是为什么自定义企业培训系统变得......