题目名称 | 4036. 解压缩 |
---|---|
输入输出 | extract.in/out |
难度等级 | ★★ |
时间限制 | 1000 ms (1 s) |
内存限制 | 512 MiB |
测试数据 | 10 |
题目来源 | syzhaoss 于2024-10-21加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:7, 提交:10, 通过率:70% | ||||
1nclude | 100 | 0.029 s | 3.40 MiB | C++ |
小金 | 100 | 0.030 s | 3.37 MiB | C++ |
健康铀 | 100 | 0.030 s | 3.37 MiB | C++ |
Davinci | 100 | 0.030 s | 3.39 MiB | C++ |
syzhaoss | 100 | 0.032 s | 3.37 MiB | C++ |
健康铀 | 100 | 0.168 s | 18.63 MiB | C++ |
wdsjl | 100 | 0.183 s | 18.66 MiB | C++ |
花火 | 10 | 0.030 s | 3.36 MiB | C++ |
wdsjl | 0 | 2.040 s | 3.20 MiB | C++ |
健康铀 | 0 | 2.301 s | 18.39 MiB | C++ |
本题关联比赛 | |||
20241022 |
关于 解压缩 的近10条评论(全部评论) |
---|
神犇最近在研究字符串算法。
神犇发明了一种字符串压缩算法:对于字符串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$的正整数。