AT_agc054_d [AGC054D] (ox)
题目描述
给定一个由 `(`、`)`、`o`、`x` 组成的字符串 $S$。你可以任意次数地交换 $S$ 中相邻的两个字符。请你求出,为了满足下述条件,所需的最小操作次数。
- 将 $S$ 中出现的每个 `o` 替换为 `()`,每个 `x` 替换为 `)(`,从而得到仅由 `(` 和 `)` 组成的新字符串 $S'$。此时,$S'$ 必须是**括号匹配的字符串**。
括号匹配的字符串定义如下:
- 空字符串;
- 存在括号匹配的非空字符串 $s$、$t$,将 $s$ 和 $t$ 按此顺序连接得到的字符串;
- 存在括号匹配的字符串 $s$,将 `(`、$s$、`)` 按此顺序连接得到的字符串。
此外,根据本题的限制条件,目标一定可以实现。
输入格式
输入为一行,包含一个字符串 $S$。
输出格式
输出所需的最小操作次数。
说明/提示
### 限制
- $S$ 仅由 `(`、`)`、`o`、`x` 组成。
- $S$ 至少包含一个 `(` 和一个 `)`,且它们的数量相等。
- $|S| \leq 8000$
### 样例解释 1
`)x(` → `x)(` → `x()` → `(x)`,这样操作即可。此时 $S' = ()()`,它是一个括号匹配的字符串。
由 ChatGPT 4.1 翻译