首页 > 试题广场 >

小红书推荐系统

[编程题]小红书推荐系统
  • 热度指数:3258 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小红书有一个推荐系统,可以根据用户搜索的关键词推荐用户希望获取的内容。
现在给定小红的搜索记录(记录为分词后的结果),我们认为当一个单词出现的次数不少于3次时,该单词为“用户期望搜索的单词”,即称为关键词。请你根据小红的记录,输出小红的用户画像对应的所有关键词。

输入描述:
一行字符串,仅由小写字母和空格组成。代表小红的搜索记录。
字符串长度不超过100000。


输出描述:
小红所有的关键词。每行输入一个。你需要按照搜索频次从高到低输出。频次相同的,你需要按字典序升序输出。
示例1

输入

kou red game red ok who game red karaoke yukari kou red red nani kou can koukou ongakugame game

输出

red
game
kou
from collections import defaultdict
import sys

a = input().split()
word_dict = defaultdict(int)
for word in a:
    word_dict[word] += 1

sorted_ = sorted(word_dict.items(), key= lambda x :(-x[1], x[0])) # 值降序,键升序
key_words = []
for item in sorted_:
    if item[1] >= 3:
        key_words.append(item[0]) # 字符串列表,频率降序,且都大于等于3次
for item in key_words:
    print(item)

发表于 2025-09-20 16:21:41 回复(0)