SP5153 COMPRESS - Compressed String

题目描述

## 题目内容 压缩字符串。 给出两个字符串 $A$ 和 $B$,$B$ 是标准的字符串,$A$ 是可能存在错误的字符串,请将两个压缩后的字符串转换为未压缩状态的字符串并进行比较。若 $A$ 与 $B$ 压缩前的字符串一致,输出 $\texttt{YES}$;否则输出 $\texttt{NO}$ 和第一个出现不一致的位置。 以下是字符串压缩的标准: - 将字符串的连续字符压缩成“**[子字符串]重复次数**”的形式,如字符串 $\texttt{cabababd}$ 可以压缩成 $\texttt{c[ab]3d}$; - 请注意:对于一个字符串,可以存在多种压缩方式,如上述字符串还可以压缩成 $\texttt{c[ab]1ababd}$、$\texttt{ca[ba]2bd}$ 等等。

输入格式

题目有多个测试点。 第一行输入一个整数 $T$,代表有 $T$ 个测试点。 接下来 $T \times 2$ 行,是T个测试点的数据。对于每个测试点,第一行是字符串 $A$ ,第二行是字符串 $B$ 。每个字符串仅由小写字母、中括号($\texttt{[}$ 和 $\texttt{]}$)和数字组成。每组中括号后必须接上一个数字,代表括号内子串的重复次数。注意:该数字可以为 $0$,括号可以嵌套。

输出格式

先输出测试点编号,如 $\texttt{Case \#1:}$,再输出结果。 ## 输入输出样例 输入: ``` 5 a[a]12 [[a]3]4a [z]12 zzzzzzzzz [a[ba]2b]12 [ab]36 [a]123123123[icpc]2 [[a]123]1001001inter aismoreeasierthanc gismuchharderthanj ``` 输出 ``` Case #1: YES Case #2: NO 10 Case #3: YES Case #4: NO 123123125 Case #5: NO 1 ```

说明/提示

以上输入输出样例中,测试点 $3$ 中 $A$ 字符串 $\texttt{[a[ba]2b]12}$ 可以写为 $\texttt{[ababab]12}$,进一步写为 $\texttt{[[ab]3]12}$,最后写为 $\texttt{[ab]36}$。 测试点中的数字可能非常大,不能以 $32$ 位整数存储。 翻译由 smart_kai 提供。