Пошук уроків, статей та іншого контенту
Визначте, чи є два рядки анаграмами один одного.
Напишіть функцію solve(a, b), яка повертає true, якщо рядки a і b є анаграмами — тобто складаються з тих самих літер у будь-якому порядку, без урахування регістру та символів, що не є літерами (пробіли, пунктуація).
Приклади
Вхід: "listen", "silent"
Вихід: true
Вхід: "hello", "world"
Вихід: false
Вхід: "Dormitory", "Dirty Room"
Вихід: true
без урахування регістру й пробілів
Ваше рішення
Підказки
Приведіть обидва рядки до нижнього регістру й відкиньте все, що не є літерою (наприклад, через regex).
Дві нормалізовані послідовності символів — анаграми тоді й лише тоді, коли їхні відсортовані версії співпадають.
function solve(a, b) {
const normalize = (str) =>
str.toLowerCase().split("").filter((c) => /[a-z]/.test(c)).sort().join("");
return normalize(a) === normalize(b);
}normalize зводить рядок до відсортованої послідовності лише літер нижнього регістру — якщо результат для обох рядків однаковий, вони складаються з тих самих літер, а отже є анаграмами.