首页 > 其他分享 >[LeetCode Hot 100] LeetCode394. 字符串解码

[LeetCode Hot 100] LeetCode394. 字符串解码

时间:2023-12-24 17:11:32浏览次数:36  
标签:压入 LeetCode394 res Hot num new 100

题目描述

思路


思路:

  • 碰到数字:压入数字栈,注意多位数的情况
  • 碰到字母:直接拼接到res
  • 遇到[:将num和res分别压入栈
  • 遇到]:开始处理栈顶元素

方法一:

class Solution {
    public String decodeString(String s) {
        int num = 0;
        StringBuilder res = new StringBuilder();
        Deque<String> DigStack = new ArrayDeque<>();
        Deque<Integer> NumStack = new ArrayDeque<>();

        for (char c : s.toCharArray()) {
            if (c >= '0' && c <= '9') {
                num = num * 10 + (c - '0');
            } else if (c == '[') {
                NumStack.push(num);
                DigStack.push(res.toString());
                res.delete(0, res.length());
                num = 0;
            } else if (c == ']') {
                String item = res.toString();
                int times = NumStack.pop();
                for (int i = 0; i < times - 1; i ++) {
                    res.append(item);
                }
                res.insert(0, DigStack.pop());
            } else{
                res.append(c);
            }
        }
        return res.toString();
    }
}

标签:压入,LeetCode394,res,Hot,num,new,100
From: https://www.cnblogs.com/keyongkang/p/17924616.html

相关文章

  • [LeetCode Hot 100] LeetCode739. 每日温度
    题目描述思路:单调递减栈使用单调栈的模板即可。根据题意可知,该题使用的是单调递减栈。问题抽象为:找出数组中右边第一个比我大的元素。方法一:classSolution{publicint[]dailyTemperatures(int[]temperatures){//用于存放结果int[]res=new......
  • [LeetCode Hot 100] LeetCode42. 接雨水
    题目描述思路一:单调栈柱子的高度递减的时候是装不了水的,当碰到第一个比之前高的柱子才可以装水。此时计算栈顶索引能装的水:宽:i-left-1(这个left为栈顶元素pop之后的peek值)高:min(height[left],height[i])-height[top]该题维护的是一个单调递减栈方法一:对应思路......
  • [LeetCode Hot 100] LeetCode84. 柱状图中最大的矩形
    题目描述思路:枚举+优化(单调栈)先固定矩阵的高。然后向左向右找到第一个比当前元素值小的元素,确定好左右边界。对于元素2来说:向左找到第一个比当前元素值小的元素:1的右边界向右找到第一个比当前元素值小的元素:3的右边界枚举每个元素的上边界,确定往左数最远到达哪个边界......
  • 在Flutter中使用PhotoViewGallery指南
    介绍Flutter中的PhotoViewGallery是一个功能强大的插件,用于在应用中展示可缩放的图片。无论是构建图像浏览器、相册应用,还是需要在应用中查看大图的场景,PhotoViewGallery都是一个不错的选择。添加依赖首先,需要在pubspec.yaml文件中添加photo_view插件的依赖。打开该文件,然后在depen......
  • 初中英语优秀范文100篇-036Eating out or Dining at Home-出去吃还是在家吃
    PDF格式公众号回复关键字:SHCZFW036记忆树1Eatingoutisveryconvenientbecausenoonehastocook.翻译外出就餐非常方便,因为没有人需要做饭。简化记忆方便句子结构1"Eatingout":这是一个动名词短语,用来表示行为。"eating"(吃)是动词,用作现在分词形式,用来构成动名......
  • 最大工作频率为32MHz,R7F100GPL2DFA、R7F100GPL3CFA低功耗MCU,10M08SAU169C8GGB MAX® 1
    一、RL78/G23 新一代RL78微控制器,最大工作频率为32MHz,外围功能得到进一步扩展,低功耗性能也有所提升。RL78/G23微控制器是RL78系列的新一代产品,CPU工作时的功耗为41μA/MHz,STOP(保持4KBSRAM)时的功耗为210nA,其低功耗在业内首屈一指。此外,由于采用SNOOZE模式定序器,它还能大幅度减少......
  • 新一代RL78微控制器,R7F100GPJ2DFA和R7F100GPJ3CFA低功耗MCU、32MHz
    概览RL78/G23低功耗MCU可在41μA/MHzCPU运行频率下工作,功耗低,停止4KBSRAM保持时为210nA。该MCU设有snooze模式排序器,可显著降低间歇工作时的功耗。RL78/G23组具有1.6V至5.5V宽工作电压范围,频率高达32MHz。它们还具有30引脚至128引脚各种封装引脚数和高达768KB闪存。除了增强的模......
  • 初中英语优秀范文100篇-035My Favourite City-我最喜欢的城市
    PDF格式公众号回复关键字:SHCZFW035记忆树1IlikeShanghaibestbecauseitisdifferentfromothercitiesinChina.翻译我最喜欢上海,因为它不同于中国其他城市。简化记忆上海句子结构1"IlikeShanghaibest":这是一个主谓宾结构的句子,主语是"I"(我),谓语是"like"......
  • AC1005 安卓图案解锁
    链接:https://ac.nowcoder.com/acm/contest/20960/1005来源:牛客网题目大意:给定一串序列,判定是不是合法的Android密码.安卓图案解锁的密码有这样的一些特点:1.每个数字最多只会被使用一次。2.如果想直接连接两个数字,但是线段中会经过另一个数字,当且仅有那个数字已经在之前就......
  • [LeetCode] 热题100
    128最长连续序列publicclassSolution{publicintlongestConsecutive(int[]nums){if(nums==null||nums.length==0)return0;intans=1;HashMap<Integer,Integer>map=newHashMap<>();for(intnum:......