Lintcode575 Decode String 题解

【题目描述】

Given an expression s includes numbers, letters and brackets. Number represents the number of repetitions inside the brackets(can be a string or another expression).Please expand expression to be a string.

Example

s = abc3[a] return abcaaa

s = 3[abc] return abcabcabc

s = 4[ac]dy, return acacacacdy

s = 3[2[ad]3[pf]]xyz, return adadpfpfpfadadpfpfpfadadpfpfpfxyz

给出一个表达式 s,此表达式包括数字,字母以及方括号。在方括号前的数字表示方括号内容的重复次数(括号内的内容可以是字符串或另一个表达式),请将这个表达式展开成一个字符串。

样例

S = abc3[a] 返回 abcaaa

S = 3[abc] 返回 abcabcabc

S = 4[ac]dy 返回 acacacacdy

S = 3[2[ad]3[pf]]xyz 返回 adadpfpfpfadadpfpfpfadadpfpfpfxyz

【题目链接】

www.lintcode.com/en/problem/decode-string/

【题目解析】

递归的思路

递归计算出括号最里面的字符串,依次再处理外面一层的字符串,每个单元内的字符串类似于一个结点,个数则为结点的个数。父结点则是将这些个数的字符串组合在一起,以此类推到跟结点,就是我们要求的结果。

迭代的思路

用两个栈来分别保存下单元中的个数,另一个则保存单元中的字符串,注意的是,要将最新的处理完后的字符串加入到栈中。一直加入,直到最后返回栈顶字符串则为所求结果。

【参考答案】

www.jiuzhang.com/solutions/decode-string/

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,259评论 0 38
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,584评论 0 13
  • 一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这...
    Winterfell_Z阅读 6,612评论 0 13
  • 郑儿爷爷打来电话,询问郑儿最近的表现,随便叙述他在新疆的生活状况。 关于钱,够用就好。 拿健康换取金钱,到头终究会...
    简宁思静阅读 158评论 0 0
  • 下雨了,很想你,但是不敢打电话给你 怕你遭雷劈 请说出三条支撑你活下去的理由 我胡三六条,六条被人暗杠了 我以为我...
    小淘米_TTMIX阅读 293评论 0 0

友情链接更多精彩内容