Даны две строки s и t, верните true, если t является анаграммой s, и false в противном случае.
Анаграмма — это слово или фраза, образованная путём перестановки букв другого слова или фразы, обычно с использованием всех исходных букв ровно один раз.
Примеры
Пример 1
Input: s = "anagram", t = "nagaram"
Output: true
Пример 2
Input: s = "rat", t = "car"
Output: false
Решение
Решение
// Временная сложность: O(N)// Пространственная сложность: O(1) (максимум 26 ключей для англ. алфавита)var isAnagram = function(s, t) { if (s.length !== t.length) return false; const count = {}; // Первый проход: считаем плюсы за буквы из первой строки for (let i = 0; i < s.length; i++) { // O(1) доступ count[s[i]] = (count[s[i]] || 0) + 1; } // Второй проход: вычитаем за буквы из второй строки for (let i = 0; i < t.length; i++) { const char = t[i]; // Если буквы нет в count или счетчик уже 0 -> значит лишняя буква if (!count[char]) { return false; } count[char]--; } return true;};