【小红书笔试题】小红书有一个推荐系统,可以根据用户搜索的..

小红书有一个推荐系统,可以根据用户搜索的关键词推荐用户希望获取的内容。

现在给定小红的搜索记录(记录为分词后的结果),我们认为当一个单词出现的次数不少于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

#include <iostream>
#include<algorithm>
#include<vector>
#include<map>
using namespace std;
struct mapcomparator {
    bool operator()(const std::pair<string, int>& a, const std::pair<string, int>& b) {
        if (a.second == b.second) {
            return a.first < b.first;
        }
        return a.second > b.second;
    }
};
int main() {
    string a;
    map<string, int> wmap;
    while (cin >> a) { // 注意 while 处理多个 case
        wmap[a] ++;
    }

    vector<std::pair<string,int>> sortMap(wmap.begin(), wmap.end());
    std::sort(sortMap.begin(), sortMap.end(), mapcomparator());
    auto it = sortMap.begin();
    while(it!=sortMap.end()){
        if(it->second > 2){
            cout<< it->first <<endl;
        }
        it++;
    }

}
// 64 位输出请用 printf("%lld")
#小红书笔试题#
全部评论

相关推荐

在改简历的大卫很认真:天天有面试 = 你已经在 offer 门口了。 海投能面成这样,说明你的简历、基础、学历都是过关的,缺的只是一次刚好匹配的缘分。 关于你说的 SQL 恐惧,我帮你捋一下: - 面试里考来考去,真就那几类: 分组、去重、关联、子查询、窗口函数(row_number、rank、sum 开窗) ​ - 面试官要的不是“写得花里胡哨”,而是思路稳、不出错。 你恐惧的本质不是不会, 是怕临场卡壳、怕写错、怕被追问。
点赞 评论 收藏
分享
评论
2
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务