CF559B.Equivalent Strings

普及+/提高

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Today on a lecture about strings Gerald learned a new definition of string equivalency. Two strings a and b of equal length are called equivalent in one of the two cases:

  1. They are equal.
  2. If we split string a into two halves of the same size _a_1 and _a_2, and string b into two halves of the same size _b_1 and _b_2, then one of the following is correct:
    1. _a_1 is equivalent to _b_1, and _a_2 is equivalent to _b_2
    2. _a_1 is equivalent to _b_2, and _a_2 is equivalent to _b_1

As a home task, the teacher gave two strings to his students and asked to determine if they are equivalent.

Gerald has already completed this home task. Now it's your turn!

今天,在关于字符串的课上,杰拉尔德学习了一个新的“字符串等价”定义。两个长度相等的字符串 aa 和 bb 被称为等价的,当且仅当满足以下两种情况之一:

  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 等价。

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

杰拉尔德已经完成了这项家庭作业。现在轮到你了!

输入格式

The first two lines of the input contain two strings given by the teacher. Each of them has the length from 1 to 200 000 and consists of lowercase English letters. The strings have the same length.

输入的前两行包含老师给出的两个字符串。每个字符串的长度为 11 到 200 000200\,000,且仅由小写英文字母组成。这两个字符串长度相同。

输出格式

Print "YES" (without the quotes), if these two strings are equivalent, and "NO" (without the quotes) otherwise.

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

输入输出样例

  • 输入#1

    aaba
    abaa

    输出#1

    YES
  • 输入#2

    aabb
    abab

    输出#2

    NO

说明/提示

In the first sample you should split the first string into strings "aa" and "ba", the second one — into strings "ab" and "aa". "aa" is equivalent to "aa"; "ab" is equivalent to "ba" as "ab" = "a" + "b", "ba" = "b" + "a".

In the second sample the first string can be splitted into strings "aa" and "bb", that are equivalent only to themselves. That's why string "aabb" is equivalent only to itself and to string "bbaa".

在第一个样例中,你应该将第一个字符串拆分为字符串 “aa” 和 “ba”,第二个字符串拆分为 “ab” 和 “aa”。其中,“aa” 等价于 “aa”;而 “ab” 等价于 “ba”,因为 “ab” = “a” + “b”,“ba” = “b” + “a”。

在第二个样例中,第一个字符串可以拆分为字符串 “aa” 和 “bb”,而它们各自仅等价于自身。因此,字符串 “aabb” 仅等价于它自身以及字符串 “bbaa”。

输入解题思路,AI测评打分。不知道怎么写?

首页