AT_past202004_j 文字列解析

题目描述

给定一个由英文小写字母、`(`和`)`组成的字符串 $s$,请将 $s$ 重复执行以下操作后输出: - 对于字符串 $a$ 和 $b$,令 $rev(a)$ 为翻转 $a$ 之后得到的字符串,$a+b$ 为将 $a$ 和 $b$ 按 $a$ 先 $b$ 后的顺序串联起来后的字符串。 - 若发现 $s$ 有一连续子串满足:形式为`(`$+a+$`)`($a$ 为不含`(`和`)`的字符串),则将该子串用 $a+rev(a)$ 替换。 全部操作完成后的 $s$ 长度不会大于 $1000$,且不含`(`和`)`。

输入格式

一行一个字符串 $s$。

输出格式

输出所有操作完成后的字符串 $s$。 ### 约束条件 $1 \le |s| \le 1000$;

说明/提示

### 注意 この問題に対する言及は、2020年5月2日 18:00 JST まで禁止されています。言及がなされた場合、賠償が請求される可能性があります。 試験後に総合得点や認定級を公表するのは構いませんが、どの問題が解けたかなどの情報は発信しないようにお願いします。 ### 制約 - $ S $ は長さ $ 1 $ 以上 $ 1000 $ 以下の、英小文字 `a` ~ `z` と `(` と `)` からなる文字列である。 - $ S $ は $ 1 $ 文字以上の英小文字を含む。 - 操作をこれ以上操作が行えなくなるまで繰り返し行ったときの、最終的な文字列 $ S $ の長さは $ 1000 $ 以下であり、これに`(` や `)` は含まれない。 ### Sample Explanation 1 `(ab)` を `ab` $ +rev( $ `ab` $ ) $ である `abba` に置き換えると、$ S $ は `abbac` になります。 これ以上操作を行うことはできないので、これを出力します。 ### Sample Explanation 2 括弧が存在しない可能性もあります。 ### Sample Explanation 3 括弧の中が空文字列である可能性もあります。