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

力扣-394.字符串解码

题目链接

394.字符串解码

class Solution {public String decodeString(String s) {Stack<Integer> numStack = new Stack<>();Stack<StringBuilder> strStack = new Stack<>();StringBuilder curStr = new StringBuilder();int curNum = 0;for (int i = 0; i < s.length(); i++) {char c = s.charAt(i);if (Character.isDigit(c)) {curNum = curNum * 10 + (c - '0');} else if (c == '[') {numStack.push(curNum);strStack.push(curStr);curNum = 0;curStr = new StringBuilder();} else if (c == ']') {int size = numStack.pop();StringBuilder temp = strStack.pop();for (int j = 0; j < size; j++) {temp.append(curStr);}curStr = temp;} else {curStr.append(c);}}return curStr.toString();}
}

小结:采用双栈法,一个栈存数字即重复次数,另一个栈存储的是需要与内层结果拼接的前缀字符串,而curStr保存的是当前最内层正在处理的字符串。

http://www.lryc.cn/news/618839.html

相关文章:

  • Spark Core 3.3.2 略讲~
  • Java设计模式-快速入门
  • DEA模型MATLAB实现(CCR、BCC、超效率)
  • 优选算法 力扣 18. 四数之和 双指针算法的进化 优化时间复杂度 C++ 题解 每日一题
  • 基于.net高校财务管理系统/c#/asp.net/sql server 设计开发
  • GIT使用攻略
  • IEEE 2025 | 重磅开源!SLAM框架用“法向量+LRU缓存”,将三维重建效率飙升72%!
  • 【Linux】init和bash的区别
  • 【数据结构】——顺序表链表(超详细解析!!!)
  • iOS 编译 cpp 代码生成 .a 库备忘
  • 探秘酵母单杂交技术:解锁基因调控的密码
  • 元宇宙虚拟金融服务全景解析:技术创新、场景重构与未来趋势
  • JPrint免费的Web静默打印控件:代理如何使用?
  • 学习游制作记录(背包UI以及各种物品的存储)8.12
  • Xshell远程连接Ubuntu 24.04.2 LTS虚拟机
  • 浪潮推出首个“人工智能工厂”,工业化模式加速技术落地
  • Java连接MySQL数据库
  • CANopen Magic调试软件使用
  • 文件io ,缓冲区
  • 堆排序以及实现
  • 基于多模态大模型的个性化学习路径生成系统研究
  • 【motion】身体动作与面部表情捕捉2:Motion-X++ 论文分析
  • 过程设计工具深度解析-软件工程之详细设计(补充篇)
  • MyBatis 缓存与 Spring 事务相关笔记
  • redis的过期策略和定时器
  • Cloud Computing(云计算)和Sky Computing(天空计算)
  • 地图可视化实践录:显示地理区域图
  • 深层神经网络
  • 测试匠谈 | AI语音合成之大模型性能优化实践
  • 【C#】用队列构建一个对象池管理对象的创建和释放