1268. Search Suggestions System
- Search Suggestions System python solution
题目描述
Given an array of strings products and a string searchWord. We want to design a system that suggests at most three product names from products after each character of searchWord is typed. Suggested products should have common prefix with the searchWord. If there are more than three products with a common prefix return the three lexicographically minimums products.
Return list of lists of the suggested products after each character of searchWord is typed.
解析
题目比较容易理解,就是查询特定字母串,返回符合条件的product。
需要按照searchWord中字母的顺序进行搜索,例如该product不含有前缀mo,那么在下次的查找过程中,可以将该词忽略。因为该product不可能再满足条件了。
filter函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
其中
lambda x: x.startswith(searchWord[:i])
就是一个函数
class Solution(object):
def suggestedProducts(self, products, searchWord):
result = list()
products.sort()
for i in range(1, len(searchWord)+1):
products = list(filter(lambda x: x.startswith(searchWord[:i]), products))
result.append(products[:3])
return result
Reference
https://leetcode.com/problems/search-suggestions-system/discuss/436253/Simple-python-short-solution