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。以至于是一直我自己在使用。…

论文浅尝 - 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;那也就掌握了这个框架。这个原则适用于世界上绝大多数事务…

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;打造高效的线下团队&…

深入解析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;各个业务的研发团队在技术选择上没有明确的指…

参会邀请 - CCKS2020 | 2020全国知识图谱与语义计算大会(CCKS2020)明日开幕

本文转载自公众号&#xff1a; 中国中文信息学会。第十四届全国知识图谱与语义计算大会将于2020年11月12日-15日在南昌召开。会议由中国中文信息学会语言与知识计算专业委员会主办&#xff0c;由江西师范大学承办&#xff0c;智源社区提供社区支持。本次会议讲习班采用线上举行…

Linux 程 序 员 失 业 警 告

文 | 小戏有多少人期待过像贾维斯一样的强人工智能&#xff1f;尽管老实说看当下的技术离这一期待还很遥远&#xff0c;但用用类似 GPT-3 这样的技术去实现些朴素的愿望似乎并没有那么困难。就在昨天&#xff0c;来自 Facebook 的 Elvis 在推特上发布了一个借助 OpenAI 的 GPT-…

LeetCode 707. 设计链表(List)

文章目录1. 设计一个单链表2. 双向链表1. 设计一个单链表 在链表类中实现这些功能&#xff1a; get(index)&#xff1a;获取链表中第 index 个节点的值。如果索引无效&#xff0c;则返回-1。 addAtHead(val)&#xff1a;在链表的第一个元素之前添加一个值为 val 的节点。插入…

用Vue.js开发微信小程序:开源框架mpvue解析

前言 mpvue 是一款使用 Vue.js 开发微信小程序的前端框架。使用此框架&#xff0c;开发者将得到完整的 Vue.js 开发体验&#xff0c;同时为 H5 和小程序提供了代码复用的能力。如果想将 H5 项目改造为小程序&#xff0c;或开发小程序后希望将其转换为 H5&#xff0c;mpvue 将是…