2020.03.15日常总结
有了防护伞
,并不能完全避免 的灾难。地球防卫小队
决定去求助外星种族的帮助。经过很长时间的努力,小队终于收到了外星生命的回信。但是外星人发过来的却是一串密码。只有解开密码,才能知道外星人给的准确回复。解开密码的第一道工序就是解压 缩密码,外星人对于连续的若干个相同的子串 X
会压缩为 [DX]
的形式( 是一个整数且 ),比如说字符串 CBCBCBCB
就压缩为 [4CB]
或者 [2[2CB]]
,类 似于后面这种压缩之后再压缩的称为二重压缩
。如果是 [2[2[2CB]]]
则是三重的。现在我们给你外星人发送的密码,请你对其进行解压缩。
【数据范围】:
-
对于 的数据:解压后的字符串长度在 以内,最多只有三重压缩。
-
对于 的数据:解压后的字符串长度在 以内,最多只有十重压缩。保证只包含数字、大写字母、
[
和]
。
因为最多只有 重的压缩,所以我们可以从此入口。记 表示第 重的压缩展开后的结果,我们可以如此计算它( 表示当前是第 重的压缩):
- 如果当前字符是一个字母的话,直接把它放至 的最后一位。
- 如果当前字符是
[
,代表我们可以了新的一层压缩,我们可以先取出 ,然后把 求出。第 层压缩对 的贡献就是 个 ,直接把 个 放入 的后面即可。
考虑到递归的层数很小(只有 ),所以我们可以用递归解决问题。