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 翻译