【394.字符串解码】

目录

一、题目描述

二、算法原理

三、代码实现

cpp 复制代码
class Solution {
public:
    string decodeString(string s) 
    {
        stack<string> s1;
        s1.push("");
        stack<int> s2;
        int i = 0, n = s.size();
        while (i < n)
        {
            //1.如果是数字入数字栈
            if (s[i] >= '0' && s[i] <= '9')
            {
                int sum = 0;
                while (s[i] >= '0' && s[i] <= '9')
                {
                    int val = s[i] - '0';
                    sum = sum * 10 + val;
                    i++;
                }
                s2.push(sum);
            }

            //2.如果是[ 统计后面的字符串入字符串栈
            else if (s[i] == '[')
            {
                string str;
                i++;
                while (s[i] >= 'a' && s[i] <= 'z') str += s[i++];
                s1.push(str);
            }

            //3.如果是] 解码后入字符栈顶的子串后面
            else if (s[i] == ']')
            {
                int times = s2.top();
                s2.pop();
                string temp = s1.top();
                s1.pop();
                while (times--) s1.top() += temp;
                i++;
            }

            //4.如果是字符 把字符串入栈顶的子串后面
            else if (s[i] >= 'a' && s[i] <= 'z')
            {
                string str;
                while (s[i] >= 'a' && s[i] <= 'z') str += s[i++];
                if (str.size() > 0) s1.top() += str;
            }
        }
        return s1.top();
   
        
    }
};
相关推荐
x_xbx9 小时前
LeetCode:617. 合并二叉树
算法·leetcode·职场和发展
Shadow(⊙o⊙)9 小时前
模拟实现:glibc_1.0-文件操作函数fopen fclose fwrite fflush实现。
开发语言·c++·学习·c
Lucky_ldy9 小时前
数据结构从入门到精通:算法复杂度
数据结构·算法
夜雪闻竹9 小时前
从零实现 Embedding 服务:文本转向量
人工智能·算法·embedding
Kristrina9 小时前
我用C++入门教程,学会了基础编程
开发语言·c++
lcj25119 小时前
string类从编译链接到构造析构,解决多文件重复定义+运算符重载,面试必考!
开发语言·c++·面试·职场和发展
雪度娃娃9 小时前
Asio异步通信——处理粘包问题
网络·c++
糖梨10 小时前
Windows 下 Cursor 变量跳转的 WSL2 + clangd 方案 —— 跨平台 Linux C++ 开发环境搭建踩坑实录
c++·跨平台·wsl·clangd·cursor
weixin_4296302610 小时前
3.41 一种高效的室内定位Wi-Fi视觉地图构建及自维护方法
算法
心中有国也有家10 小时前
NPU性能调优完全攻略——从Profiler到算子调优的实战方法论
人工智能·经验分享·笔记·分布式·算法