2. 小红书推荐系统 小红书有一个推荐系统,可以根据用户搜索的关键词推荐用户希望获取的内容。 现在给定小红的搜索记录(记录为分词后的结果),我们认为当一个单词出现的次数不少于3次时,该单词为“用户期望搜索的单词”,即称为关键词。请你根据小红的记录,输出小红的用户画像对应的所有关键词。 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M 输入描述: 一行字符串,仅由小写字母和空格组成。代表小红的搜索记录。 字符串长度不超过100000。 输出描述: 小红所有的关键词。每行输入一个。你需要按照搜索频次从高到低输出。频次相同的,你需要按字典序升序输出。 示例1 输入例子: kou red game red ok who game red karaoke yukari kou red red nani kou can koukou ongakugame game 输出例子: red game kou
理解问题2. 小红书推荐系统 小红书有一个推荐系统,可以根据用户搜索的关键词推荐用户希望获取的内容。 现在给定小红的搜索记录(记录为分词后的结果),我们认为当一个单词出现的次数不少于3次时,该单词为“用户期望搜索的单词”,即称为关键词。请你根据小红的记录,输出小红的用户画像对应的所有关键词。 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M 输入描述: 一行字符串,仅由小写字母和空格组成。代表小红的搜索记录。 字符串长度不超过100000。 输出描述: 小红所有的关键词。每行输入一个。你需要按照搜索频次从高到低输出。频次相同的,你需要按字典序升序输出。 示例1 输入例子: kou red game red ok who game red karaoke yukari kou red red nani kou can koukou ongakugame game 输出例子: red game kou
已完成理解「2. 小红书推荐系统 小红书有一个推荐系统,可以根据用户搜索的关键词推荐用户希望获取的内容。 现在给定小红的搜索记录(记录为分词后的结果),我们认为当一个单词出现的次数不少于3次时,该单词为“用户期望搜索的单词”,即称为关键词。请你根据小红的记录,输出小红的用户画像对应的所有关键词。 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M 输入描述: 一行字符串,仅由小写字母和空格组成。代表小红的搜索记录。 字符串长度不超过100000。 输出描述: 小红所有的关键词。每行输入一个。你需要按照搜索频次从高到低输出。频次相同的,你需要按字典序升序输出。 示例1 输入例子: kou red game red ok who game red karaoke yukari kou red red nani kou can koukou ongakugame game 输出例子: red game kou」
展开阅读网页
# 以下是解决给定问题的伪代码和思路解释:
# 1. 首先,读取输入的一行字符串,并将其分割成单词列表。
input_string = input()
words = input_string.split()
# 2. 创建一个字典来统计每个单词出现的频率。
word_count = {}
for word in words:
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1
# 3. 找出所有出现次数大于等于3次的单词,并保存到列表中。
keywords = [(word, count) for word, count in word_count.items() if count >= 3]
# 4. 对关键字列表按出现频次降序排序,若频次相同,则按字典序升序排序。
keywords.sort(key=lambda x: (-x[1], x[0]))
# 5. 输出所有关键词,每个关键词占一行。
for keyword, _ in keywords:
print(keyword)
这段代码首先读取输入字符串,并将其分割成单词列表。接着,统计每个单词的出现频率。然后找出所有出现次数大于等于3次的单词,并按照出现频次降序和字典序升序进行排序。最后,逐行输出这些关键词。1