中等
技术面试0 次浏览在携程的业务中,我们会根据用户的搜索记录来推荐相关的旅游产品。现在有一个用户搜索记录的数据集,包含用户 ID、搜索关键词和搜索时间,以列表形式存储,例如 [('user1', '三亚旅游', '2024-01-01'), ('user1', '酒店预订', '2024-01-02'), ('user2', '机票预订', '2024-01-01')]。请设计一个系统,能够根据用户 ID 快速查询该用户最近的搜索关键词。
携程数据分析师
系统设计数据查询
答题要点
可使用分层分析法答题。首先,数据存储层,要点有:1. 选择合适的数据结构,使用字典存储,键为用户 ID,值为该用户的搜索记录列表。2. 按时间排序,在存储时对每个用户的搜索记录按时间降序排列。然后,查询逻辑层:3. 实现查询函数,输入用户 ID,从字典中获取该用户的搜索记录列表,返回列表的第一个元素(即最近的搜索记录)。示例思路:先创建一个空字典 `search_records`,遍历数据集,将每个用户的搜索记录添加到字典中,并按时间排序。接着定义一个查询函数 `get_recent_search`,接收用户 ID 作为参数,从 `search_records` 中获取对应记录列表,返回列表第一个元素的搜索关键词。