AT_agc066_c [AGC066C] Delete AAB or BAA
题目描述
给定一个只包含 `A` 和 `B` 的字符串 $S$。
你可以对该字符串重复进行如下操作:
- 从 $S$ 中选择连续的 $3$ 个字符,这 $3$ 个字符等于 `AAB` 或 `BAA`,然后将这 $3$ 个字符从 $S$ 中删除(删除后剩余的字符会连接在一起)。
请你求出最多可以进行多少次这样的操作。
给定 $T$ 个测试用例,请分别输出每个测试用例的答案。
输入格式
输入以如下格式从标准输入读入。
> $T$
> $\text{case}_1$
> $\vdots$
> $\text{case}_T$
每个测试用例输入一行,包含一个只由 `A` 和 `B` 组成的字符串 $S$。
输出格式
请输出 $T$ 行,第 $i$ 行输出第 $i$ 个测试用例最多可以进行的操作次数。
说明/提示
### 限制
- $1\leq T\leq 10^5$
- $S$ 只包含 `A` 和 `B` 字符。
- $1\leq |S|\leq 10^6$
- 所有测试用例的 $|S|$ 之和不超过 $10^6$。
### 样例解释 1
对于第 $1$、$2$ 个测试用例,最大化操作次数的一种方法如下:
- `AABAAAB` → `AAAB` → `A`
- `BAAAAABBA` → `BAAABA` → `BAA` → (空字符串)
由 ChatGPT 4.1 翻译