简单
技术面试0 次浏览微博的热门话题功能会实时展示当前热度较高的话题。请设计一个简单的数据结构来存储话题及其热度值,并实现添加话题、更新话题热度和获取热度最高的话题这三个基本操作。
微博后端工程师
数据结构话题热度基本操作
答题要点
推荐使用分层分析法来解答,先明确数据结构的选择,再分别实现各个操作。关键要点如下:1. 数据结构选择:可以使用字典来存储话题及其热度值,字典的键为话题名称,值为热度值。2. 添加话题:检查话题是否已存在,若不存在则将其添加到字典中并初始化热度值。3. 更新话题热度:若话题存在,更新其热度值;若不存在,可选择添加该话题。4. 获取热度最高的话题:遍历字典,找出热度值最大的话题。示例思路:首先,创建一个空字典来存储话题和热度。对于添加话题操作,判断话题是否在字典中,不在则添加。更新热度时,直接修改对应话题的值。获取热度最高话题时,遍历字典比较热度值。代码示例如下: python topic_heat = {} def add_topic(topic, heat): if topic not in topic_heat: topic_heat[topic] = heat def update_heat(topic, new_heat): if topic in topic_heat: topic_heat[topic] = new_heat else: add_topic(topic, new_heat) def get_hottest_topic(): if not topic_heat: return None hottest = max(topic_heat, key=topic_heat.get) return hottest