当前位置: 首页 > news >正文

力扣 hot100 Day61

394. 字符串解码

给定一个经过编码的字符串,返回它解码后的字符串。

编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。

你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。

此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。

//抄的
class Solution {
public:string decodeString(string s) {stack<string> charStack;stack<int> numStack;string currentStr;int currentNum = 0;for (char c : s) {if (isdigit(c)) {currentNum = currentNum * 10 + (c - '0');} else if (c == '[') {numStack.push(currentNum);charStack.push(currentStr);currentNum = 0;currentStr.clear();} else if (c == ']') {int num = numStack.top();numStack.pop();string prevStr = charStack.top();charStack.pop();string temp;for (int i = 0; i < num; i++) {temp += currentStr;}currentStr = prevStr + temp;} else {currentStr += c;}}return currentStr;}
};

实现逻辑其实没啥太复杂的东西,但就是写不出来

从头开始判定字符串,如果是数字,迭代保存记录,如果是左括号,存入数字栈和字母栈,如果是字母,加入currentstr变量中,如果是右括号,弹出数字栈和字母栈,循环拼装成currentstr

其实字母栈中,抛开“”,最多就两个元素,后面会不断根据数字栈元素来更新这两个字母元素

http://www.dtcms.com/a/307656.html

相关文章:

  • Mockito:Java单元测试Mock框架
  • Mac 系统下安装 nvm
  • 工业园区泵房物联网能耗优化解决方案:打造绿色低碳厂区
  • 组播 | 不同 VLAN 间数据转发实现逻辑 / 实验
  • 深入解读OpenTelemetry分布式链路追踪:原理与实践指南
  • tlias智能学习辅助系统--SpringAOP-基础-核心概念
  • Cesium 快速入门(一)快速搭建项目
  • 防火墙安全实验
  • 10. NAT,代理服务,内网穿透
  • MLIR TableGen
  • 软考中级-信息安全工程师-每日一学(1)
  • 网关冗余技术VRRP的原理与配置
  • 相亲小程序安全与隐私系统模块搭建
  • 按键精灵iOS工具元素命令SetText:自动化输入的终极解决方案
  • 前端核心技术Node.js(二)——path模块、HTTP与模块化
  • 客户服务自动化:如何用CRM减少50%人工工单?
  • 多架构镜像整合全攻略:在Docker中实现单一镜像支持同时支持amd64和arm64架构
  • 打车小程序 app 系统架构分析
  • HUD抬头显示器-杂散光测试设备 太阳光模拟器
  • SAM模型细节分析 (附录内容)
  • 构建高效AI应用:深入探讨飞算JavaAI框架与实践
  • [特殊字符] 数据可视化结合 three.js:让 3D 呈现更精准,3 个优化经验谈
  • Python汉字贪吃蛇程序升级版
  • Java报错:error: missing return statement
  • PCIE FAQ
  • 【数据结构】生活中的数据结构:从吃饭与编程看栈与队列思维
  • CSS 打字特效
  • 前缀和-1314.矩阵区域和-力扣(LeetCode)
  • 《汇编语言:基于X86处理器》第10章 编程练习
  • SFT最佳实践教程 —— 基于方舟直接进行模型精调