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 состоят из строчных английских букв
Решите эту задачу в браузере
Создайте бесплатный аккаунт — редактор Python, Java, JavaScript и Go, проверка на тестах за секунды.
Комментарии (0)
Зарегистрируйтесь или войдите, чтобы оставить комментарий
Пока нет комментариев. Будьте первым!