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

394. 字符串解码

有点类似语法树解析。

分别设置两个栈stack_multistack_ans来记录当前需要重复的次数需要重复的字符串

  • 当遇到[时,对当前的multians进行记录,即入栈,并初始化为初始值。
  • 当遇到]时,开始输出,stack_multi的栈顶元素分别取出得到cur_multi,对stack_ans的栈顶元素重复cur_multi次,将重复后的内容拼接到当前ans后面。
  • 当遇到数字时,更新multi,注意Integer.parseInt()方法的入参需要是String类型,所以对Character类型的c进行了+""操作。
  • 当遇到字母时,更新ans
class Solution {
    public String decodeString(String s) {
        StringBuilder ans = new StringBuilder();
        int multi = 0;
        char[] chars = s.toCharArray();
        Deque<Integer> stack_multi = new LinkedList<>();
        Deque<String> stack_ans = new LinkedList<>();
        for (char c : chars) {
            if (c == '[') {
                stack_multi.push(multi);
                stack_ans.push(ans.toString());
                multi = 0;
                ans = new StringBuilder();
            } else if (c == ']') {
                StringBuilder temp = new StringBuilder();
                int cur_multi = stack_multi.pop();
                for (int i = 0; i < cur_multi; ++i) {
                    temp.append(ans);
                }
                ans = new StringBuilder(stack_ans.pop() + temp);
            } else if (c >= '0' && c <= '9') {
                multi = multi * 10 + Integer.parseInt(c + "");
            } else {
                ans.append(c);
            }
        }
        return ans.toString();
    }
}

相关文章:

  • 【蓝桥杯】省赛:神奇闹钟
  • Pyecharts 输出到 html 白屏 | 解决方案来
  • 用tiptap搭建仿google-docs工具栏
  • C++和C的区别
  • CTA重建:脑血管重建,CT三维重建,三维建模 技术,实现
  • 华为重拳出击!华为重拳出击!华为重拳出击!
  • 【Java】Devops、CI/CD、jenkins
  • Linux系统之美:进程初识
  • C语言每日一练——day_8
  • Qt常用控件之网格布局QGridLayout
  • 2025-03-15 学习记录--C/C++-C语言 char* price; 和 char price;的区别
  • 背诵--1
  • 【NLP】7. 自然语言处理 (NLP) 的关键要素
  • 零基础上手Python数据分析 (2):Python核心语法快速入门
  • golang从入门到做牛马:第二十篇-Go语言接口:行为的“契约”
  • 深入探究 HTML 框架:多页面同窗口显示的奥秘
  • 【红黑树】—— 我与C++的不解之缘(二十五)
  • 软件环境安装-通过Docker安装Elasticsearch和Kibana【保姆级教程、内含图解】
  • SpringBoot配置文件
  • 【Docker compose】Neo4j 数据备份与恢复
  • 香港暂停进口美国北达科他州一地区禽肉及禽类产品
  • 加强战略矿产出口全链条管控工作部署会召开
  • 宁德时代港股募资预计最高至50亿美元:90%将投向匈牙利项目
  • 专访|家人眼中的周碧初:用色彩写诗,实践油画“民族化”
  • 湖北石首市委副书记、市长付勇接受审查调查
  • 习近平结束对俄罗斯国事访问并出席纪念苏联伟大卫国战争胜利80周年庆典回到北京