AT_arc166_a [ARC166A] Replace C or Swap AB
题目描述
给定由 `A`、`B`、`C` 组成的长度为 $N$ 的字符串 $X$ 和 $Y$。
你可以对 $X$ 进行以下三种操作(每种操作可以执行任意次,包括 $0$ 次),请判断是否可以将 $X$ 变为 $Y$。
- **操作 (1)**:选择 $X$ 中的一个 `C` 字符,将其替换为 `A`。
- **操作 (2)**:选择 $X$ 中的一个 `C` 字符,将其替换为 `B`。
- **操作 (3)**:选择 $X$ 中的一个子串 `AB`,将其替换为 `BA`。更形式化地说,选择 $X$ 中第 $i$ 个字符为 `A` 且第 $i+1$ 个字符为 `B$ 的 $i$,将第 $i$ 个字符替换为 `B`,第 $i+1$ 个字符替换为 `A`。
给定 $T$ 组测试数据,请分别回答每组数据是否可以将 $X$ 变为 $Y$。
输入格式
输入以如下格式从标准输入读入。
> $T$
> $\text{case}_1$
> $\vdots$
> $\text{case}_T$
每组测试数据格式如下:
> $N\ X\ Y$
输出格式
请输出 $T$ 行。第 $i$ 行输出第 $i$ 组测试数据的答案,如果可以将 $X$ 变为 $Y$,输出 `Yes`,否则输出 `No`。
说明/提示
### 限制条件
- $1\leq T\leq 2\times 10^5$
- $1\leq N\leq 2\times 10^5$
- $X$、$Y$ 均为由 `A`、`B`、`C` 组成的长度为 $N$ 的字符串。
- 所有测试数据中 $N$ 的总和不超过 $2\times 10^5$。
### 样例解释 1
- 第 $1$ 组测试数据:可以通过 $0$ 次操作将 $X$ 变为 $Y$。
- 第 $2$ 组测试数据:可以通过 $1$ 次操作 (2) 将 $X$ 变为 $Y$。
- 第 $4$ 组测试数据:可以通过 $1$ 次操作 (3) 将 $X$ 变为 $Y$。
- 第 $6$ 组测试数据:例如依次对合适位置执行操作 (1)、操作 (3)、操作 (1),$X$ 会变为 `CCB` → `CAB` → `CBA` → `ABA`,最终与 $Y$ 一致。
由 ChatGPT 4.1 翻译