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