CF559B.Equivalent Strings

传统题 时间 2000 ms 内存 256 MiB 9 尝试 22 已通过 10 标签

Equivalent Strings

题目描述

今天,在一次关于字符串的讲座上,Gerald 学到了一个新的字符串等价定义。对于两个长度相同的字符串 aabb,在以下两种情况下它们被认为是等价的:

  1. 它们完全相同。
  2. 如果我们将字符串 aa 分成两个等长的部分 a1a_{1}a2a_{2},并将字符串 bb 分成两个等长的部分 b1b_{1}b2b_{2},则以下两种情况之一成立:
    1. a1a_{1}b1b_{1} 等价,且 a2a_{2}b2b_{2} 等价;
    2. a1a_{1}b2b_{2} 等价,且 a2a_{2}b1b_{1} 等价。

作为家庭作业,老师给了学生两个字符串,并要求判断它们是否等价。

Gerald 已经完成了这道作业。现在轮到你啦!

输入格式

输入的前两行各包含一个由老师给出的字符串。每个字符串的长度为 11200000200000,且只包含小写英文字母。两个字符串的长度相同。

输出格式

如果这两个字符串等价,输出大写的 "YES"(不包含引号);否则输出大写的 "NO"(不包含引号)。

说明/提示

在第一个样例中,你应当将第一个字符串分成 "aa" 和 "ba",第二个分成 "ab" 和 "aa"。"aa" 与 "aa" 等价;"ab" 与 "ba" 等价,因为 "ab" = "a" + "b","ba" = "b" + "a"。

在第二个样例中,第一个字符串可以分成 "aa" 和 "bb",它们只与自身等价。因此字符串 "aabb" 只与自身和字符串 "bbaa" 等价。

由 ChatGPT 5 翻译

样例

aaba
abaa
YES
aabb
abab
NO

在线编程 IDE

建议全屏模式获得最佳体验