LeetCode75——Day26

文章目录

一、题目

394. Decode String

Given an encoded string, return its decoded string.

The encoding rule is: kencoded_string, where the encoded_string inside the square brackets is being repeated exactly k times. Note that k is guaranteed to be a positive integer.

You may assume that the input string is always valid; there are no extra white spaces, square brackets are well-formed, etc. Furthermore, you may assume that the original data does not contain any digits and that digits are only for those repeat numbers, k. For example, there will not be input like 3a or 24.

The test cases are generated so that the length of the output will never exceed 105.

Example 1:

Input: s = "3a2bc"

Output: "aaabcbc"

Example 2:

Input: s = "3a2\[c]"

Output: "accaccacc"

Example 3:

Input: s = "2abc3cdef"

Output: "abcabccdcdcdef"

Constraints:

1 <= s.length <= 30

s consists of lowercase English letters, digits, and square brackets '\[\]'.

s is guaranteed to be a valid input.

All the integers in s are in the range 1, 300.

二、题解

cpp 复制代码
class Solution {
public:
    string decodeString(string s) {
        string ans;
        stack<pair<int, int>> stk;
        int count = 0;
        for (auto x : s) {
            if (isdigit(x)) 
                count = 10 * count + (x - '0');
            else if (x == '[') {
                stk.push({count, ans.size()});
                count = 0;
            }
            else if (isalpha(x)) 
                ans += x;
            else if (x == ']') {
                int n = stk.top().first;
                string str = ans.substr(stk.top().second, ans.size() - stk.top().second);
                for (int i = 0; i < n - 1; i++) {
                    ans += str;
                }
                stk.pop();
            }
        }
        return ans;
    }
}; 
相关推荐
程序员正茂4 分钟前
Android studio中使用OpenCV C++库
android·c++·opencv·mobile
稚南城才子,乌衣巷风流7 分钟前
树的重心:概念、性质与算法详解
算法·深度优先·图论
不会就选b11 分钟前
算法日常・每日刷题--<哈希>1
算法·哈希算法
沉默王二16 分钟前
携程员工:在携程4年,月薪3万左右,基本没涨薪了。不过挺满足的,毕竟稳定,福利也不错(附Agent面试题)
面试·openai·agent
乱七八糟的屋子18 分钟前
FlatBuffers C++ 实战教程:从零到一掌握高性能序列化
c++·零拷贝·序列化·flatbuffers c++
Moment19 分钟前
2026 了,前端转 AI 全栈我是这么学的 😍😍😍
前端·后端·面试
zander25819 分钟前
LeetCode 207. 课程表
算法·深度优先
野生风长20 分钟前
c++(日期类的实现)
前端·c++
萌动的小火苗21 分钟前
深度学习中的损失函数与优化算法基础知识
人工智能·深度学习·算法
happyprince23 分钟前
02_OpenCodeReview 具体观:八种算法机制与背后的论文谱系
算法