LeetCode 394. 字符串解码(栈)

1. 题目

给定一个经过编码的字符串,返回它解码后的字符串。

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

你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。

此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。

示例:s = "3[a]2[bc]", 返回 "aaabcbc".
s = "3[a2[c]]", 返回 "accaccacc".
s = "2[abc]3[cd]ef", 返回 "abcabccdcdcdef".

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/decode-string
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 栈解题

class Solution {
public:string decodeString(string s) {int i, j, n = 0, num;string str, temp, ans;stack<int> intStk;stack<char> charStk;for(i = 0; i < s.size(); ++i){if(s[i] >= '0' && s[i] <= '9')n = n*10 + s[i] - '0';//记录整数是啥else if(!(s[i] >= '0' && s[i] <= '9') && s[i] != ']'){if(s[i] == '[')//整数存好了{intStk.push(n);n = 0;//为下次准备好自己}charStk.push(s[i]);}else//s[i] == ']'{num = intStk.top();//取出数字intStk.pop();while(charStk.top() != '['){temp = charStk.top()+temp;//[]里面是啥呢?tempcharStk.pop();}charStk.pop();//'['while(num--)//字符temp*num次{str += temp;}for(j = 0; j < str.size(); ++j)//把得到的str入栈charStk.push(str[j]);str = temp = "";//为下次做准备}}while(!charStk.empty())//取出所有结果{ans = charStk.top()+ans;charStk.pop();}return ans;}
};

在这里插入图片描述

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

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

相关文章

90TB显存!英伟达发布新一代SuperPod超算,AI算力新巅峰!

周一&#xff0c;黄教主又很淡定的在自家厨房里开完了GTC发布会众所周知&#xff0c;NLP领域的模型一个比一个大&#xff0c;自从百亿参数的Google T5出来后&#xff0c;大部分AI研究者只能望着手里的蹩脚算力兴叹。如今动辄就是千亿、万亿参数模型&#xff0c;目前比较流行的V…

VS Code HtmlFindClass 插件介绍

这款插件诞生于工作中&#xff0c;在写大量的前端代码之后&#xff0c;发现有的工作比较重复&#xff0c;浪费时间&#xff0c;于是想能不能通过工具来解决。起初是拿Java写的&#xff0c;但是它不利于推广&#xff0c;因为很多前端同学不掌握Java。以至于是一直我自己在使用。…

浅谈智能搜索和对话式OS

原文链接 &#xff1a;https://www.jianshu.com/p/3a9f49834c4a

论文浅尝 - ACL2020 | 一种用于关系三元组提取的级联二进制标记框架

论文笔记整理&#xff1a;窦春柳&#xff0c;天津大学硕士。链接&#xff1a;https://arxiv.org/pdf/1909.03227.pdf动机首先作者提出了问题&#xff0c;传统的关系抽取是不能很好的解决三元组重叠&#xff0c;如下图。从图中可以发现&#xff0c;传统的关系抽取针对Normal 类型…

LeetCode 733. 图像渲染(DFS/BFS)

文章目录1. 题目2. 解题2.1 DFS2.2 BFS1. 题目 有一幅以二维整数数组表示的图画&#xff0c;每一个整数表示该图画的像素值大小&#xff0c;数值在 0 到 65535 之间。 给你一个坐标 (sr, sc) 表示图像渲染开始的像素值&#xff08;行 &#xff0c;列&#xff09;和一个新的颜…

美团外卖Android平台化架构演进实践

美团外卖自2013年创建以来&#xff0c;业务一直高速发展。目前美团外卖日完成订单量已突破1800万&#xff0c;成为美团点评最重要的业务之一。美团外卖的用户端入口&#xff0c;从单一的外卖独立App&#xff0c;拓展为外卖、美团、点评等多个App入口。美团外卖所承载的业务&…

Vue源码探究笔记

对于源代码分析有一个基本原则&#xff1a;要找到它的最早期的版本&#xff0c;比如1.0版本。1.0版本奠定了一款框架的基础结构&#xff0c;之后的版本迭代都是基于这套结构进行更新的。所以掌握了基础结构&#xff0c;那也就掌握了这个框架。这个原则适用于世界上绝大多数事务…

PyCharm设置中文使用官方自带的汉化包

file->setting->plugins->chinese simplified 可参考&#xff1a;https://blog.csdn.net/qq_36513794/article/details/111713663

Jarvis:一个值得关注的多模态端到端人机对话框架,针对所有行业适配

说到应用级的人机对话框架&#xff0c;很多人可能首先想到的是RASA开源项目。不过&#xff0c;今天跟大家简要分享一个功能更为丰富、性能更为强劲的多模对话框架——Jarvis&#xff0c;非常值得对话系统从业者关注一下。Jarvis是英伟达于2019年发布的人机对话服务&#xff0c;…

技术动态 | 知识图谱构建的研究已走入下半场,但大规模落地应用仍需时间

本文转载自公众号&#xff1a;AI前线。作者 | 李冬梅 采访嘉宾 | 唐杰知识图谱是近年来人工智能技术蓬勃发展的核心驱动力之一&#xff0c;已广泛应用在金融、电商、医疗、政务等众多领域&#xff0c;经过短短几年的发展&#xff0c;热度依旧不减&#xff0c;未来&#xff0c;知…

LeetCode 542. 01 矩阵(BFS DP)

文章目录1. 题目2. 解题2.1 BFS2.2 DP动态规划1. 题目 给定一个由 0 和 1 组成的矩阵&#xff0c;找出每个元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 示例 1: 输入: 0 0 0 0 1 0 0 0 0 输出: 0 0 0 0 1 0 0 0 0示例 2: 输入: 0 0 0 0 1 0 1 1 1 输出: 0 0 0 0…

美团旅行销售绩效系统研发实践

背景 O2O是目前互联网竞争最激烈的领域之一&#xff0c;其重要的业务特征是有大规模的线下业务团队&#xff0c;他们分布在五湖四海&#xff0c;直接服务着数以百万的商家&#xff0c;责任很重&#xff0c;管理的难度巨大。能否通过技术手段&#xff0c;打造高效的线下团队&…

业界大盘点!文本相关性在搜广推三大场景中的应用!

业界大盘点&#xff01;文本相关性在搜广推三大场景中的应用&#xff01;:https://mp.weixin.qq.com/s/kYou_ikuNPr4PsWbJpDKYw

深入解析Node.js setTimeout方法的执行过程

深入了解setTimeout源码之前&#xff0c;本有两个选择。一是通过chromium源码分析&#xff0c;二是通过Node.js源码分析。后来发现第一种方案的源码获取成本太大&#xff0c;于是从Node官网获取了几十兆的代码用来了解。 当前的Node版本为&#xff1a;v10.16.0 setTimeout方法定…

别只关注GPT3!细如发丝的模型更具现实杀伤力!

这个世界上有两种极具难度的工程&#xff1a;第一种是把很平常的东西做到最大&#xff0c;例如把语言模型扩大成能够写诗写文写代码的GPT-3&#xff1b;而另一种恰恰相反&#xff0c;是把很平常的东西做到最小。 ----王苏语录GPT3自从诞生以来&#xff0c;便受到…

论文浅尝 - EMNLP2020 | 基于分组式对比学习的神经对话生成

论文笔记整理&#xff1a;叶宏彬&#xff0c;浙江大学计算机博士生。论文地址&#xff1a;https://arxiv.org/abs/2009.07543摘要&#xff1a;近年来&#xff0c;神经对话问答的产生已广受欢迎。现有对话模型学习中广泛采用了最大似然估计目标&#xff08;MLE&#xff09;。但是…

LeetCode 841. 钥匙和房间(DFS/BFS)

文章目录1. 题目2. 解题2.1 DFS2.2 BFS1. 题目 有 N 个房间&#xff0c;开始时你位于 0 号房间。每个房间有不同的号码&#xff1a;0&#xff0c;1&#xff0c;2&#xff0c;…&#xff0c;N-1&#xff0c;并且房间里可能有一些钥匙能使你进入下一个房间。 在形式上&#xff…

容器中用uwsgi协议部署注意的问题以及用flask部署

1 表示当前容器名 一般通过 docker exec -it 容器名 /bin/bash , 进入容器内部进行操作&#xff0c;比如安装环境&#xff0c;传输文件 2 4888 容器内部访问端口地址&#xff0c;如果对外开放api&#xff0c;需要对其进行映射&#xff0c;比如映射成11022,11022是对外访问的端…

美团点评金融平台Web前端技术体系

背景 随着美团点评金融业务的高速发展&#xff0c;前端研发数量从 2015 年的 1 个人&#xff0c;扩张到了现在横跨北上两地 8 个事业部的将近 150 人。业务新&#xff0c;团队新&#xff0c;前端领域框架技术又层出不穷&#xff0c;各个业务的研发团队在技术选择上没有明确的指…

Promise源码解析

Promise源码解析 纸上得来终觉浅&#xff0c;绝知此事要躬行。之前只是很浅显的知道Promise的用法&#xff0c;也大概猜测到它的内部是如何实现的。但是总是有一种不深究一下就不踏实的感觉。于是从npm上获得早期的Promise源代码&#xff0c;拿过来读一读&#xff0c;做一做笔…