CF1301A Three Strings

题目描述

给定三个长度相同的字符串 $a$、$b$ 和 $c$,长度为 $n$。这三个字符串仅包含小写英文字母。第 $i$ 个字符分别记为 $a_i$、$b_i$、$c_i$。 对于每个 $i$($1 \leq i \leq n$),你必须将 $c_i$ 与 $a_i$ 或 $b_i$ 交换(即互换)。总共需要进行恰好 $n$ 次交换操作,每次操作可以选择 $c_i \leftrightarrow a_i$ 或 $c_i \leftrightarrow b_i$($i$ 从 $1$ 到 $n$)。 例如,如果 $a$ 为 "code",$b$ 为 "true",$c$ 为 "help",你可以通过第 $1$ 位和第 $4$ 位从 $a$ 取字母,其余从 $b$ 取字母,使 $c$ 变为 "crue"。此时 $a$ 变为 "hodp",$b$ 变为 "tele"。 请判断,是否存在一种交换方式,使得最终字符串 $a$ 与字符串 $b$ 完全相同。

输入格式

输入包含多组测试数据。第一行包含一个整数 $t$($1 \leq t \leq 100$),表示测试用例的数量。 每个测试用例包含三行,每行一个仅由小写英文字母组成的字符串 $a$、$b$、$c$。 保证每组数据中这三个字符串非空且长度相同,且长度不超过 $100$。

输出格式

对于每个测试用例,输出一行答案: 如果可以通过上述操作使得字符串 $a$ 与字符串 $b$ 完全相同,输出 "YES"(不含引号);否则输出 "NO"(不含引号)。 答案可以为大写或小写字母。

说明/提示

在第一个测试用例中,不可能通过交换使得字符串 $a$ 与字符串 $b$ 完全相同。 在第二个测试用例中,应当对所有 $i$ 都将 $c_i$ 与 $a_i$ 交换。交换后 $a$ 变为 "bca",$b$ 变为 "bca",$c$ 变为 "abc"。此时 $a$ 和 $b$ 相等。 在第三个测试用例中,应当将 $c_1$ 与 $a_1$ 交换,$c_2$ 与 $b_2$ 交换,$c_3$ 与 $b_3$ 交换,$c_4$ 与 $a_4$ 交换。此时 $a$ 变为 "baba",$b$ 变为 "baba",$c$ 变为 "abab"。此时 $a$ 和 $b$ 相等。 在第四个测试用例中,不可能通过交换使得字符串 $a$ 与字符串 $b$ 完全相同。 由 ChatGPT 4.1 翻译