CF1223B Strings Equalization

题目描述

给定两个长度相等的字符串 $s$ 和 $t$,均由小写拉丁字母组成。你可以对这两个字符串进行任意次数(可能为零)如下操作: 每次操作,你可以选择任意一个字符串中的两个相邻字符,将第一个字符的值赋给第二个,或者将第二个字符的值赋给第一个。 例如,如果 $s$ 为 "acbc",你可以通过一次操作得到以下字符串: - "aabc"(如果执行 $s_2 = s_1$); - "ccbc"(如果执行 $s_1 = s_2$); - "accc"(如果执行 $s_3 = s_2$ 或 $s_3 = s_4$); - "abbc"(如果执行 $s_2 = s_3$); - "acbb"(如果执行 $s_4 = s_3$); 注意,你也可以对字符串 $t$ 进行上述操作。 请判断是否可以通过任意次数的上述操作,将 $s$ 变为 $t$。 你需要回答 $q$ 个独立的询问。

输入格式

第一行包含一个整数 $q$($1 \leq q \leq 100$),表示询问的数量。每个询问由两行组成。 每个询问的第一行包含字符串 $s$($1 \leq |s| \leq 100$),由小写拉丁字母组成。 每个询问的第二行包含字符串 $t$($1 \leq |t| \leq 100$,且 $|t| = |s|$),由小写拉丁字母组成。

输出格式

对于每个询问,如果可以通过任意次数的操作使 $s$ 等于 $t$,输出 "YES";否则输出 "NO"。 你可以用任意大小写输出答案(例如 "yEs"、"yes"、"Yes"、"YES" 都视为正确)。

说明/提示

在第一个询问中,你可以进行两次操作:$s_1 = s_2$(此时 $s$ 变为 "aabb"),再进行 $t_4 = t_3$(此时 $t$ 变为 "aabb")。 在第二个询问中,两个字符串本来就相等,因此答案为 "YES"。 在第三个询问中,无法使 $s$ 和 $t$ 相等,因此答案为 "NO"。 由 ChatGPT 4.1 翻译