news 2026/7/14 0:26:16

【剑斩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/7/7 14:07:06

DownKyi:B站视频下载终极解决方案,轻松获取8K超高清资源

DownKyi&#xff1a;B站视频下载终极解决方案&#xff0c;轻松获取8K超高清资源 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去…

作者头像 李华
网站建设 2026/6/28 23:59:21

ResNet18实战:构建跨平台识别应用

ResNet18实战&#xff1a;构建跨平台识别应用 1. 通用物体识别与ResNet-18技术背景 在计算机视觉领域&#xff0c;通用物体识别是实现智能感知系统的核心能力之一。无论是自动驾驶中的环境理解、安防监控中的异常检测&#xff0c;还是消费级AI产品中的图像分类功能&#xff0…

作者头像 李华
网站建设 2026/7/12 17:20:10

OpenCore Legacy Patcher:突破苹果官方限制,让老款Mac焕发新生

OpenCore Legacy Patcher&#xff1a;突破苹果官方限制&#xff0c;让老款Mac焕发新生 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 还在为手中的老款Mac无法升级到最新…

作者头像 李华
网站建设 2026/7/4 6:40:12

ResNet18部署案例:医疗影像分类系统搭建

ResNet18部署案例&#xff1a;医疗影像分类系统搭建 1. 引言&#xff1a;通用物体识别与ResNet-18的工程价值 在人工智能落地实践中&#xff0c;图像分类是计算机视觉中最基础也最广泛的应用之一。从智能相册自动打标签&#xff0c;到工业质检中的缺陷识别&#xff0c;再到医…

作者头像 李华
网站建设 2026/7/13 4:59:02

ResNet18实战教程:多模型集成提升精度

ResNet18实战教程&#xff1a;多模型集成提升精度 1. 引言&#xff1a;通用物体识别中的ResNet-18价值 在计算机视觉领域&#xff0c;通用物体识别是构建智能系统的基础能力之一。从自动驾驶中的环境感知&#xff0c;到内容平台的自动打标&#xff0c;精准、高效的图像分类模…

作者头像 李华