Сложность: medium
Вам дан массив строк products и строка searchWord. Разработайте систему, которая предлагает не более трех названий продуктов после ввода каждого символа searchWord. Предлагаемые товары должны иметь общий префикс с searchWord. Если есть более трех продуктов с общим префиксом, возвращаются три лексикографически минимальных продукта. Возвращается список списков предложенных продуктов после ввода каждого символа searchWord.
Пример:
Input: products = ["havana"], searchWord = "havana"
Output: [["havana"],["havana"],["havana"],["havana"],["havana"],["havana"]]
👨💻 Алгоритм:
1⃣Отсортируйте массив продуктов.
2⃣Итерируйтесь по каждому символу в searchWord, находите все продукты, которые соответствуют текущему префиксу.
3⃣Сохраняйте не более трех лексикографически минимальных продуктов для каждого префикса.
😎 Решение:
var suggestedProducts = function(products, searchWord) {
products.sort();
let result = [];
let prefix = "";
for (let char of searchWord) {
prefix += char;
let suggestions = products.filter(product => product.startsWith(prefix)).slice(0, 3);
result.push(suggestions);
}
return result;
};Ставь 👍 и забирай 📚 Базу знаний