LeetCode 热题 HOT 100 (035/100)【宇宙最简单版】

news2024/9/23 7:22:30

【栈】No. 0394 字符串解码【中等】👉力扣对应题目指路

希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦
欢迎关注、订阅专栏 【力扣详解】谢谢你的支持!

题目描述:给定一个经过编码的字符串,返回它解码后的字符串

  • 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数

  • 你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入

  • 示例 1:
    输入:s = “3[a]2[bc]”
    输出:“aaabcbc”

🔥 思路:构建辅助栈,由内向外拼接结果

  • 可重点关注第七张,遇到 ']' 时的出栈处理
  • res 存储 [ ] 内的潜在字符串
    • 所以每遇到 '[' 则重置,重置前需要将 "当前括号外侧的倍数 & 当前括号外侧的字符串: [multi, res] " 入栈
      • 注意遇到 ']' 前再次遇到了 '[' 说明有嵌套,所以此时 res 的角色不是完整的 [ ] 内的字符串,而是嵌套外层 (当前 '[' 括号外侧 ) 的字符串片段
  • 遇到 ']'res 完整存储了当前 ']' 对应括号内的字符串,利用栈顶元素携带值拼接可获得外层括号内的完整字符串
    • res = last_res + cur_multi * res

class Solution:
    def decodeString(self, s: str) -> str:
        stack, res, multi = [], "", 0
        for c in s:
            if c == '[':  ## 收集并重置 当前括号外侧的倍数 & 字符串
                stack.append([multi, res])
                res, multi = "", 0
            elif c == ']':
                cur_multi, last_res = stack.pop()
                ## 根据遇到 ] 时候需要进行的操作,反推需要入栈什么信息
                # 需要当前括号外侧的倍数 cur_multi、以及字符串 (不是全部) last_res
                # res 为当前括号内的字符串
                res = last_res + cur_multi * res  
            elif '0' <= c <= '9':
                multi = multi * 10 + int(c)            
            else:
                res += c
        return res
   

希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦
🔥 LeetCode 热题 HOT 100

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2034165.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java面试八股之什么是消息队列

什么是消息队列 消息队列&#xff08;Message Queue&#xff09;是一种应用程序间通信&#xff08;IPC&#xff09;的形式&#xff0c;它允许进程将消息发送到另一个消息队列&#xff0c;接收端则可以在任何时刻从队列中取出这些消息进行处理。消息队列提供了一种异步处理、解…

R语言 | 发一篇 Science 需要学会多少个R包?

1. 一个一个举例子 1.1 实例1 该论文提供的代码涵盖的分析方向齐全&#xff0c;且代码风格和R语言编程细节都有值得学习的地方。代码有点多&#xff0c;包括R&#xff0c;rmd&#xff0c; py&#xff0c;jupyter notebook, shell等格式&#xff0c;压缩包见Q群文件: 187923577…

今年免费AI写作神器推荐,文案创作新宠儿

面对日益增长的创作需求与有限的个人精力&#xff0c;如何高效产出高质量的内容成为了许多创作者面临的共同挑战。幸运的是&#xff0c;现在有不少ai写作免费工具可以帮我们实现。 1.宙语AI写作 链接直达&#xff1a;https://ailjyk.com/pc 这款工具作为一款在线AI应用&#…

最佳 5 款 SD 卡照片恢复应用程序,用于从 SD 卡恢复已删除的照片

我们都知道照片承载着我们一生中最美好的回忆。但残酷的事实是&#xff0c;尽管你备份了所有的照片&#xff0c;但有些文件总会莫名其妙地丢失。无论是意外删除还是由于某种原因格式化设备&#xff0c;数据丢失都是不可避免的。因此&#xff0c;我们不会创建同一文件的数千份副…

恶补费马小定理和组合数

前言&#xff1a;我们平时遇到的组合数如果用杨辉三角型做的话&#xff0c;预处理的复杂度是 n 2 n^2 n2 &#xff0c;遇到大一点的数据就会爆炸 我们怎么去优化呢 C ( n , k ) n ! k ! ⋅ ( n − k ) ! m o d mod C(n, k) \frac{n!}{k! \cdot (n-k)!} \mod \text{mod} C(…

深入剖析大模型安全问题:Langchain框架的隐藏风险

随着大模型热度持续&#xff0c;基于大模型的各类应用层出不穷。Langchain 作为一个以 LLM 模型为核心的开发框架&#xff0c;可以帮助我们灵活地创建各类应用&#xff0c;同时也为大模型的应用引入新的安全隐患。从今年 4 月 Langchain 被爆出在野 0day 漏洞开始&#xff0c;各…

PHP项目任务系统小程序源码

&#x1f680;解锁高效新境界&#xff01;我的项目任务系统大揭秘&#x1f50d; &#x1f31f; 段落一&#xff1a;引言 - 为什么需要项目任务系统&#xff1f; Hey小伙伴们&#xff01;你是否曾为了杂乱的待办事项焦头烂额&#xff1f;&#x1f92f; 或是项目截止日逼近&…

LeetCode刷题笔记第191题:位1的个数

LeetCode刷题笔记第191题&#xff1a;位1的个数 题目&#xff1a; 想法&#xff1a; 通过位运算判断二级制形式中有多少个1&#xff0c;代码及解释如下&#xff1a; class Solution:def hammingWeight(self, n: int) -> int:return sum(1 for i in range(32) if n & …

十三、list 类

Ⅰ . list 的介绍和使用 01 初识 list 我们已经学习过 string 和 vector 了&#xff0c;想必大家已经掌握了查文档的能力 现在我们去学习如何使用 list &#xff0c;最好仍然打开文档去学习 list - C Reference ① list 是一个顺序容器 允许在任意位置进行 O(1) 插入和删除…

Blazor开发框架Known-V2.0.7

V2.0.7 Known是基于Blazor的企业级快速开发框架&#xff0c;低代码&#xff0c;跨平台&#xff0c;开箱即用&#xff0c;一处代码&#xff0c;多处运行。 官网&#xff1a;http://known.pumantech.comGitee&#xff1a; https://gitee.com/known/KnownGithub&#xff1a;http…

2024.8.7(SQL语句)

一、回顾 1、主服务器 [rootslave-mysql ~]# yum -y install rsync [rootmaster-mysql ~]# yum -y install rsync [rootmaster-mysql ~]# tar -xf mysql-8.0.33-linux-glibc2.12-x86_64.tar [rootmaster-mysql ~]# ls [rootmaster-mysql ~]# tar -xf mysql-8.0.33-linux-glib…

ssd202d-添加4g模块-HM609

1.lsusb要看到设备 2.驱动部分要打开usb识别,rndis支持 diff --git a/kernel/arch/arm/configs/infinity2m_spinand_ssc011a_s01a_minigui_defconfig b/kernel/arch/arm/configs/infinity2m_spinand_ssc011a_s01a_minigui_defconfig index e6a2e43b6..b0a60f4ee 100755 --- a/…

新品上市:ATA-401高压功率放大器技术参数、特点及应用

随着电子工程师不断增长的测试需求&#xff0c;安泰电子也在不断的拓展和研发新产品&#xff0c;近期安泰ATA-400系列高压功率放大器正式上线&#xff0c;又一单品新品测试仪器加入了Aigtek大家庭——ATA-401高压功率放大器。 关于ATA-401高压功率放大器 参数指标介绍&#xff…

基于vue框架的CIA报价平台的设计与实现1xv02(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;用户,供应商,产品分类,产品信息,在线咨询,资质申请 开题报告内容 基于Vue框架的CIA报价平台的设计与实现 开题报告 一、选题背景 随着市场竞争的日益激烈&#xff0c;企业对于成本控制与效率提升的需求愈发迫切。在采购与供应链管理…

Unity URP 浅析两种模型透明Shader原理

Unity URP 浅析两种模型透明Shader原理 前言实现第一种 单个Pass写入深度的逻辑正确半透明模型第二种 2个Pass分工合作视觉正确的半透明模型 参考 前言 使用Unity做过半透明的朋友们都知道&#xff0c;这里面一堆坑&#xff0c;下面简单说两种透明Shader在ASE中的实现&#xf…

【仓颉】控制台输出中文乱码,cmd和powershell的解决方案

【仓颉】控制台输出中文乱码&#xff0c;cmd和powershell的解决方案 main(): Int64 {...println("这是仓颉")return 0 }临时修改编码页面 代码页国家(地区)或语言437美国850多语言(拉丁文 I)936中国 - 简体中文(GB2312)52936简体中文(HZ)65000Unicode (UTF-7)65001U…

Qt 计算器程序

下载链接&#xff1a; https://pan.baidu.com/s/1112o9eVbpC7FySsXRuP2xA 提取码: rd92 运行结果&#xff1a;

聚鼎科技:开一家抖音店铺到底还有前景不

在数字化的浪潮中&#xff0c;抖音不仅仅是一款短视频应用&#xff0c;它已经成为了一个新兴的商业平台&#xff0c;一个充满无限可能的市场。在这个平台上开一家店铺&#xff0c;就像在星辰大海中寻找自己的航向&#xff0c;既有挑战也有机遇。 “未来属于那些相信梦想之美的人…

【银河麒麟服务器操作系统·实例分享】虚机系统ssh无法正常登录访问,分析过程及处理建议

了解更多银河麒麟操作系统全新产品&#xff0c;请点击访问 麒麟软件产品专区&#xff1a;https://product.kylinos.cn 开发者专区&#xff1a;https://developer.kylinos.cn 服务器环境以及配置 【机型】虚机 处理器&#xff1a; Kunpeng-920 内存&#xff1a; 32G 整机…

Linux 下的进程状态

文章目录 一、运行状态运行队列运行状态和运行队列 二、睡眠状态S状态D状态D状态产生的原因 三、暂停状态T状态t 状态 四、僵尸状态为什么有僵尸状态孤儿进程 一、运行状态 R状态&#xff1a;进程已经准备好随时被调度了。 运行队列 每个 CPU 都会维护一个自己的运行队列&am…