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