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