news 2026/6/9 22:17:29

【剑斩OFFER】算法的暴力美学——力扣 394 题:字符串解码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【剑斩OFFER】算法的暴力美学——力扣 394 题:字符串解码

一、题目描述

二、算法原理

思路:使用双栈,一个栈原来存储字符串,另外一个存储整型数字;

1)一开始,把 string 栈先放个空字符串进去,方便后面操作;

2)如果碰到纯字母(非 [ 后面的字母),就让把这些字母提取出来拼接到 string 栈栈顶元素的后面:

3)如果遍历到数字,直接入 int 栈:

4)如果遍历到 ' [ ',就把 [ 后面的字母入 string 栈:

5)如果遍历到 ' ] ',就把双栈的栈顶元素拿出来,进行重复 K 次工作,重复结束之后把这个字符串拼接到栈顶元素的后面(这也是我为什么让 string 一开始放个空串进去的原因):

最终答案:此时 string 的栈顶元素就是最终答案:

三、代码实现

class Solution { public: string decodeString(string s) { vector<int> int_stack; vector<string> char_stack(1,""); for(int i = 0; i < s.size();) { if(s[i] == '[')// "[" 后面跟字母 { i++; string str = ""; while(!isdigit(s[i]) && s[i] != ']' && s[i] != '[') { str += s[i]; i++; } char_stack.push_back(str); } else if(isdigit(s[i]))//纯数字 { int tmp = 0; while(isdigit(s[i])) { tmp = tmp * 10 + (s[i] - '0'); i++; } int_stack.push_back(tmp); } else if(s[i] != ']') { //纯字母 string str; while(i < s.size() && !isdigit(s[i]) && s[i] != ']' && s[i] != '[') { str += s[i]; i++; } char_stack.back() += str; } else // "]" { //']' //取双栈元素 int k = int_stack.back(); string str = char_stack.back(); //出双栈元素 int_stack.pop_back(); char_stack.pop_back(); string ret = ""; for(int j = 0; j < k; j++) ret += str; char_stack.back() += ret; i++; } } return char_stack.back(); } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/6 2:40:25

Multisim主数据库版本兼容性:深度剖析升级影响

Multisim主数据库版本兼容性&#xff1a;从工程实践看升级背后的“暗流”你有没有遇到过这样的场景&#xff1f;实验室刚统一把Multisim从13.0升级到15.0&#xff0c;结果学生打开上周做的放大电路仿真时&#xff0c;发现三极管模型全变成了“Unknown Component”&#xff1f;或…

作者头像 李华
网站建设 2026/6/10 14:18:25

ResNet18代码实例:Flask集成WebUI开发详解

ResNet18代码实例&#xff1a;Flask集成WebUI开发详解 1. 引言&#xff1a;通用物体识别中的ResNet-18价值 1.1 行业背景与技术需求 在当前AI应用快速落地的背景下&#xff0c;通用图像分类已成为智能监控、内容审核、辅助诊断和增强现实等场景的基础能力。尽管大模型如ViT、…

作者头像 李华
网站建设 2026/6/10 7:08:47

DownKyi极速上手:B站高清视频批量下载必备神器

DownKyi极速上手&#xff1a;B站高清视频批量下载必备神器 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xff09;。…

作者头像 李华
网站建设 2026/6/10 2:17:45

理解Vivado IP核在RocketIO中的作用:图解说明

从零搞懂Vivado IP核如何驾驭RocketIO&#xff1a;工程师实战视角你有没有遇到过这样的场景&#xff1f;项目急着要打通高速链路&#xff0c;PCIe或者10GbE协议栈还没调通&#xff0c;眼图闭合、误码率高得离谱。你翻遍UG文档&#xff0c;对着GTXE2_CHANNEL原语一头雾水——时钟…

作者头像 李华
网站建设 2026/6/6 15:37:37

ResNet18优化案例:知识蒸馏提升精度

ResNet18优化案例&#xff1a;知识蒸馏提升精度 1. 背景与问题定义 1.1 通用物体识别中的模型瓶颈 在当前AI应用广泛落地的背景下&#xff0c;通用物体识别已成为智能设备、内容审核、辅助驾驶等场景的基础能力。基于ImageNet预训练的ResNet-18因其轻量级结构和良好泛化能力…

作者头像 李华
网站建设 2026/6/10 11:38:20

Emby高级功能免费解锁完整指南:从零开始实现Premiere体验

Emby高级功能免费解锁完整指南&#xff1a;从零开始实现Premiere体验 【免费下载链接】emby-unlocked Emby with the premium Emby Premiere features unlocked. 项目地址: https://gitcode.com/gh_mirrors/em/emby-unlocked 想要完全免费享受Emby媒体服务器的所有高级特…

作者头像 李华