【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('');
};
相关推荐
三小尛9 分钟前
Linux的常见指令
linux
core51224 分钟前
深度解析DeepSeek-R1中GRPO强化学习算法
人工智能·算法·机器学习·deepseek·grpo
mit6.82429 分钟前
计数if|
算法
starvapour32 分钟前
Ubuntu下sudo的免密操作
linux·ubuntu
sjg2001041439 分钟前
Deepin 20.9 误装gcc-8-base_8.4.0-1ubuntu1~16.04.1_amd64 后卸载
linux·运维·服务器
一帘忧梦41 分钟前
linux 系统rcs脚本启动
linux·运维·lua
a伊雪1 小时前
c++ 引用参数
c++·算法
jerryinwuhan1 小时前
1210_1 Linux
linux·运维·服务器
圣保罗的大教堂1 小时前
leetcode 3531. 统计被覆盖的建筑 中等
leetcode