【LeetCode热题100(69/100)】字符串解码

题目地址: 链接

思路: 栈。

  1. 遇到非]字符,压入栈
  2. 遇到]字符,将[ ]中的字符str拿出来,[前面的数字num拿出来,根据重复numstr字符,并将其压入栈。
ts 复制代码
function decodeString(s: string): string {
    let stk = [];
    for(let str of s) {
        if(str !== ']') stk.push(str);
        else {
            let str = ''
            while(stk[stk.length - 1] !== '[') {
                str = stk.pop() + str;
            }
            stk.pop(); // 弹出 [
            
            let numStr = '';
            while('0' <= stk[stk.length - 1] && stk[stk.length - 1] <= '9') {
                numStr = stk.pop() + numStr;
            }
            let substr = '';
            for(let i = 0; i < parseInt(numStr); i ++) {
                substr += str;
            }
            stk.push(substr);
        }
    }
    return stk.join('');
};
相关推荐
WolfGang00732110 小时前
代码随想录算法训练营 Day39 | 动态规划 part12
算法·动态规划
xxjj998a10 小时前
如何安装linux版本的node.js
linux·运维·node.js
阿Y加油吧11 小时前
动态规划经典题解:最长递增子序列 & 乘积最大子数组
算法·动态规划·代理模式
f3iiish11 小时前
3783. 整数的镜像距离 力扣
算法·leetcode
Not Dr.Wang42211 小时前
基于matlab的控制系统奈氏图及其稳定性分析
数据结构·算法·matlab
AC赳赳老秦11 小时前
测试工程师:OpenClaw自动化测试脚本生成,批量执行测试用例
大数据·linux·人工智能·python·django·测试用例·openclaw
路溪非溪11 小时前
Wireshark抓取以太网MAC帧并进行分析
linux·网络·驱动开发·wireshark
闻缺陷则喜何志丹11 小时前
【排序 离散化 二维前缀和】 P7149 [USACO20DEC] Rectangular Pasture S|普及+
c++·算法·排序·离散化·二维前缀和
rainbow72424411 小时前
AI学习路线分享:通用型认证与算法认证学习体验对比
人工智能·学习·算法
君义_noip11 小时前
信息学奥赛一本通 4163:【GESP2512七级】城市规划 | 洛谷 P14921 [GESP202512 七级] 城市规划
c++·算法·图论·gesp·信息学奥赛