| 题目名称 | 4036. 解压缩 |
|---|---|
| 输入输出 | extract.in/out |
| 难度等级 | ★★ |
| 时间限制 | 1000 ms (1 s) |
| 内存限制 | 512 MiB |
| 测试数据 | 10 |
| 题目来源 |
|
| 开放分组 | 全部用户 |
| 提交状态 | |
| 分类标签 | |
| 分享题解 |
| 通过:12, 提交:17, 通过率:70.59% | ||||
|
|
100 | 0.027 s | 3.72 MiB | C++ |
|
|
100 | 0.028 s | 3.37 MiB | C++ |
|
|
100 | 0.029 s | 3.40 MiB | C++ |
|
|
100 | 0.030 s | 3.37 MiB | C++ |
|
|
100 | 0.030 s | 3.37 MiB | C++ |
|
|
100 | 0.030 s | 3.39 MiB | C++ |
|
|
100 | 0.031 s | 3.54 MiB | C++ |
|
|
100 | 0.032 s | 3.37 MiB | C++ |
|
|
100 | 0.034 s | 4.05 MiB | C++ |
|
|
100 | 0.071 s | 3.72 MiB | C++ |
| 本题关联比赛 | |||
| 20241022 | |||
| 20251022赛前模拟1 | |||
| 关于 解压缩 的近10条评论(全部评论) | ||||
|---|---|---|---|---|
|
原题1239,题目一模一样,应该是重复题目
2025-11-17 10:59
1楼
| ||||
神犇最近在研究字符串算法。
神犇发明了一种字符串压缩算法:对于字符串S中的若干个连续相同的子串T,可以被压缩为[DT],其中D是一个非负整数,表示子串T连续出现了多少次。
例如,字符串ABABABABABAB可以被压缩为[6AB],当然也可以压缩为[2[3AB]]、[3[2AB]]、[2[2AB]AB]等。类似[6AB]的压缩称为一重压缩,类似[2[3AB]]和[2[2AB]AB]的称为二重压缩,依此类推。
显然,一个字符串的压缩结果可能有若干种,算法实现比较困难,所以神犇自己实现了,现在他决定将解压缩的算法交给你(未来的神犇)来训练自己的编程能力。
一行一个字符串S,表示压缩后的字符串。
一行一个字符串,表示字符串解压缩之后的结果。
[2BILI]
BILIBILI
CSP[2[2TASK]][4AC]AK
CSPTASKTASKTASKTASKACACACACAK
A[2[3[5B]]][3[2C]D[3E]]
ABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCDEEECCDEEECCDEEE
对于$20\%$的数据,最多只有一重压缩。
对于$40\%$的数据,最多只有三重压缩。
对于另外$10\%$的数据,保证所有压缩格式[DT]中的D=1,T为合法的压缩字符串。
对于$100\%$的数据,$|S|\leq 500$,解压缩后的字符串长度不超过$2\times 10^4$,最多只有十重压缩,输入保证只含有[]、数字字符和大写字母且压缩字符串无需判定是否合法。
合法的压缩字符串定义为:
1. 完全由大写字母构成的字符串;
2. 如果字符串A和字符串B是合法压缩字符串,那么AB也是合法压缩字符串。
3. 如果字符串A是合法压缩字符串,那么[DA]是一个合法压缩字符串,其中D为不包含前导$0$的正整数。