news 2026/4/20 20:28:15

LeetCodehot100-394 字符串解码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCodehot100-394 字符串解码
class Solution { public: string decodeString(string s) { // pair 里存的是:<左括号前的倍数, 左括号前的字符串> stack<pair<int, string>> st; int time = 0; // 记录当前的倍数(注意初始化为 0) string result = ""; // 记录当前的字符串 for (int i = 0; i < s.size(); i++) { char c = s[i]; if (isdigit(c)) { // 处理多位数字" time = time * 10 + (c - '0'); } else if (isalpha(c)) { // 如果是字母,直接加到当前 result 里 result += c; } else if (c == '[') { // 遇到 '[',开始存档,并清空当前状态给括号内使用 st.emplace(time, result); time = 0; result = ""; } else if (c == ']') { // 遇到 ']',提取存档 auto [last_time, last_string] = st.top(); st.pop(); // 将括号里的内容 (也就是现在的 result) 翻倍 string temp = ""; for (int k = 0; k < last_time; k++) { temp += result; } // 拼接到进括号前的历史字符串后面,成为新的 result result = last_string + temp; } } return result; } };
time = time * 10 + (c - '0');

处理多位数字,例如"123"依次得到:1 → 12 → 123

输入:"3[a2[c]]"

步骤字符timeresult
1'3'3""
2'['0""[(3, "")]
3'a'0"a"[(3, "")]
4'2'2"a"[(3, "")]
5'['0""[(3, ""), (2, "a")]
6'c'0"c"[(3, ""), (2, "a")]
7']'0"a" + "c"×2 = "acc"[(3, "")]
8']'0"" + "acc"×3 = "accaccacc"

递归:

class Solution { public: string dfs(const string& s,int&index){ string res=""; while(index<s.size()&&s[index]!=']'){ if(!isdigit(s[index])){ res+=s[index++]; } else{ int num=0; while(index<s.size()&&isdigit(s[index++])){ num=num*10+s[index]-'0'; } //[ index++; string inner=dfs(s,index); index++; for (int i = 0; i < num; i++) { res += inner; } } } return res; } string decodeString(string s) { int index=0; return dfs(s,index ); }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/20 20:25:26

TouchGal Next.js 全栈项目:构建现代化Galgame社区的完整技术指南

TouchGal Next.js 全栈项目&#xff1a;构建现代化Galgame社区的完整技术指南 【免费下载链接】kun-touchgal-next TouchGAL是立足于分享快乐的一站式Galgame文化社区, 为Gal爱好者提供一片净土! 项目地址: https://gitcode.com/gh_mirrors/ku/kun-touchgal-next TouchG…

作者头像 李华
网站建设 2026/4/20 20:24:30

基于 Redis 的分布式锁:原理剖析与 Spring Boot 实战(含看门狗续期)

一、什么是分布式锁&#xff1f;在单机应用中&#xff0c;我们常用synchronized、ReentrantLock解决多线程并发问题&#xff0c;但这些锁的作用域局限于单个 JVM 进程。当系统从单体架构演进为分布式集群时&#xff0c;多个服务实例、多个进程会并发操作共享资源&#xff08;如…

作者头像 李华
网站建设 2026/4/20 20:16:53

Turbo ACC网络加速技术解析与实践指南

Turbo ACC网络加速技术解析与实践指南 【免费下载链接】turboacc 一个适用于官方openwrt(22.03/23.05/24.10) firewall4的turboacc 项目地址: https://gitcode.com/gh_mirrors/tu/turboacc Turbo ACC是专为OpenWrt官方版本&#xff08;22.03/23.05/24.10&#xff09;fir…

作者头像 李华
网站建设 2026/4/20 20:14:37

基于量化感知训练的YOLOv5定点化部署:从模型训练到边缘端落地全指南

摘要 在边缘计算场景下,YOLOv5模型虽然精度高但参数量大、计算密集,难以直接部署在算力有限的嵌入式设备上。本文提出一套完整的基于量化感知训练(Quantization-Aware Training, QAT)的YOLOv5定点化部署方案,通过引入伪量化节点模拟低比特推理过程,使模型在训练阶段就适…

作者头像 李华
网站建设 2026/4/20 20:13:25

ROS机器人系统与URDF建模入门

一、机器人系统的核心组成一个完整的机器人&#xff0c;本质是“感知-决策-执行”的闭环系统&#xff0c;就像一个精密协作的生命体&#xff0c;四大核心模块各司其职、相互配合&#xff0c;缺一不可。从控制角度来看&#xff0c;分别是执行机构、驱动系统、传感系统、控制系统…

作者头像 李华