解密带有嵌套重复的正则表达式

PHP Hard regex

任务 «解密带有嵌套重复的正则表达式»

给定一个字符串,其中包含以特殊格式编码的正则表达式:拉丁字母(a-z)和数字(2-9)位于圆括号内,表示前一个字符或组的重复次数。允许嵌套括号。需要展开所有重复,并以标准表示法(不带括号和数字,仅保留字符和量词 {n})输出得到的正则表达式。例如,'a3' 转换为 'a{3}','(ab)2' 转换为 '(ab){2}',而 '((a2)2b)2' 转换为 '((a{2}){2}b){2}'。保证输入字符串正确,长度不超过1000个字符,嵌套深度不超过10。

输入格式

唯一的字符串 S (1 ≤ |S| ≤ 1000),由小写拉丁字母、数字 2-9 和圆括号组成。

输出格式

一行 — 使用标准符号展开的正则表达式。

示例

示例 1

输入
a3
输出
a{3}

示例 2

输入
0 0 4 0 0 3
输出
{4} {3}

示例 3

输入
0
输出

示例 4

输入
(ab)2
输出
(ab){2}

示例 5

输入
1 1 4 5 7 1
输出
{4} {5} {7}
main.php