CF559B Equivalent Strings
题目描述
今天,在一次关于字符串的讲座上,Gerald 学到了一个新的字符串等价定义。对于两个长度相同的字符串 $a$ 和 $b$,在以下两种情况下它们被认为是等价的:
1. 它们完全相同。
2. 如果我们将字符串 $a$ 分成两个等长的部分 $a_{1}$ 和 $a_{2}$,并将字符串 $b$ 分成两个等长的部分 $b_{1}$ 和 $b_{2}$,则以下两种情况之一成立:
1. $a_{1}$ 与 $b_{1}$ 等价,且 $a_{2}$ 与 $b_{2}$ 等价;
2. $a_{1}$ 与 $b_{2}$ 等价,且 $a_{2}$ 与 $b_{1}$ 等价。
作为家庭作业,老师给了学生两个字符串,并要求判断它们是否等价。
Gerald 已经完成了这道作业。现在轮到你啦!
输入格式
输入的前两行各包含一个由老师给出的字符串。每个字符串的长度为 $1$ 到 $200000$,且只包含小写英文字母。两个字符串的长度相同。
输出格式
如果这两个字符串等价,输出大写的 "YES"(不包含引号);否则输出大写的 "NO"(不包含引号)。
说明/提示
在第一个样例中,你应当将第一个字符串分成 "aa" 和 "ba",第二个分成 "ab" 和 "aa"。"aa" 与 "aa" 等价;"ab" 与 "ba" 等价,因为 "ab" = "a" + "b","ba" = "b" + "a"。
在第二个样例中,第一个字符串可以分成 "aa" 和 "bb",它们只与自身等价。因此字符串 "aabb" 只与自身和字符串 "bbaa" 等价。
由 ChatGPT 5 翻译