给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encodedstring]k[encoded_string],表示其中方括号内部的 encodedstringencoded_string 正好重复 kk 次。注意k k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。
思路:
本题直接去处理很难处理,我们可以调用数据结构栈来维护出答案。我们定义一个pair<int,string>pair类型的栈,当我们遇到数字我们先把它们存到一个空的vectorvector里面,然后遇到非数字和括号字符,把字符存到一个字符串resres里面。当我们遇到前括号''[['',我们就把vectorvector里面的数字字符转化为数字numnum,再把numnum和resres进行makepairmake pair一下存到栈里面。当遇到“]]”,我们弹出栈顶元素,并把resres更新为it.first∗res+it.secondit.first * res + it.second,依次遍历,直至栈空。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~