5342. Проверка, можно ли сделать строки равными

Medium 1 решил
Даны две строки word1 и word2. Верните true, если из первой можно получить вторую операциями ниже (сколько угодно раз, в любом порядке). Иначе — false.
  • Перестановка. Поменять местами любые две позиции в строке.
  • Переименование. Выбрать две буквы алфавита и поменять их во всех вхождениях сразу.
перестановка позиций:
  c a b b b a     →     c b b b a a
    ^     ^               ^     ^

переименование букв a ↔ b:
  a a b b c       →     b b a a c
Длину строки операции не меняют. Новую букву, которой в строке не было, завести нельзя: переименовать можно только уже встречающиеся.

Примеры:

Вход: {"word1": "abc", "word2": "bca"}
Выход: true
Объяснение: Одни и те же буквы, каждая по разу. Достаточно переставить → true.
Вход: {"word1": "a", "word2": "aa"}
Выход: false
Объяснение: Длины разные, операции длину не меняют → false.
Вход: {"word1": "cabbba", "word2": "abbccc"}
Выход: true
Объяснение: Буквы те же: a, b, c. Частоты 2, 3, 1 и 1, 2, 3 — те же числа, просто на других буквах. Переименовали и переставили → true.
Вход: {"word1": "aa", "word2": "bb"}
Выход: false
Объяснение: Частоты одинаковые (два одинаковых символа), но во второй только b, а в первой b не было. Новую букву завести нельзя → false.

Ограничения:

1 <= word1.length, word2.length <= 10^5 word1 и word2 состоят из строчных английских букв

Теги:

Строки Хэш-таблица

Комментарии (0)

Зарегистрируйтесь или войдите, чтобы оставить комментарий

Пока нет комментариев. Будьте первым!