Solution: Search Suggestions System
Explore how to design a search suggestions system that suggests up to three product names based on typed prefixes. Learn both a naive and an optimized trie-based approach to efficiently store and query product names, manage lexicographical order, and understand associated time and space complexities.
Statement
Given an array of strings called products and a word to search, design a system that, when each character of the searched word is typed, suggests at most three product names from products. Suggested products should share a common prefix with the searched word. If more than three products exist with a common prefix, return the three product names that appear first in lexicographical order.
Return the suggested products, which will be a list of lists after each character of searched word is typed.
Constraints:
-
products.length -
products[i].length -
sum(products[i].length)