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;
    }
}; 
相关推荐
余额瞒着我当琳12 小时前
C++算法学习篇5--二分查找法
c++·学习·算法
丑陋小蚊子12 小时前
网申简历附件太大,先换模板还是压缩 PDF?
面试·求职招聘·大学生·简历·简历下载
起个名字费劲死了12 小时前
基于灰度/形状的2D模板匹配
算法
杜 硕12 小时前
归并排序详解
数据结构·算法·排序算法
科技观察哨12 小时前
国产纳米定位平台与精密位移台量产能力图谱(2026):Z轴压电、XYθZ、六自由度并联与光刻/检测/装配选型指南
网络·人工智能·算法
蒸蒸yyyyzwd12 小时前
秋招学习笔记 Day 64 之准备系统软件开发工程师岗位笔记
c++·八股
奇树谦12 小时前
LRU 缓存原理与 C++ 实践示例
开发语言·c++·缓存
IT劝退师12 小时前
全球科技前沿日报 | 2026年10月14日
面试
多弗朗皮卡丘13 小时前
C++ 红黑树
开发语言·c++·红黑树
程序员Sunday13 小时前
Flex 和 Grid 有什么区别?一维布局、二维布局怎么选?
前端·css·面试