题解 | #字符串出现次数的TopK问题#

字符串出现次数的TopK问题

http://www.nowcoder.com/practice/fd711bdfa0e840b381d7e1b82183b3ee

#define PSI pair<string,int>
class mycompare{
public:
    //小顶堆:使用的是greater比较方法,也就是谁的优先级大,就返回谁
    //那么这里首先频率大的就是greater,其次字典序小的就是greater。
    //所以我们这里使用的compare,就是根据这个greater思想来写的
    bool operator()(const PSI &lhs,const PSI &rhs){
        if(lhs.second > rhs.second)return true;
        if(lhs.second == rhs.second)return lhs.first < rhs.first;
        return false;
    }
};
class Solution {
public:
    /**
     * return topK string
     * @param strings string字符串vector strings
     * @param k int整型 the k
     * @return string字符串vector<vector<>>
     */
    vector<vector<string> > topKstrings(vector<string>& strings, int k) {
        // write code here
        unordered_map<string,int> counts;
        for(auto &element : strings){
            ++counts[element];
        }
        priority_queue<PSI,vector<PSI>,mycompare> pq;
        for(auto &element : counts){
            if(pq.size() < k)pq.push(element);
            else if(mycompare()(element,pq.top())){
                pq.pop();pq.push(element);
            }
        }
        vector<vector<string>> ans(k);
        int index = 0;
        while(!pq.empty()){
            auto current = pq.top();pq.pop();
            ans[--k] = {current.first,to_string(current.second)};
        }
        return ans;
    }
};
全部评论

相关推荐

牛客279957775号:铁暗恋
点赞 评论 收藏
分享
11-15 19:28
已编辑
蚌埠坦克学院 硬件开发
点赞 评论 收藏
分享
评论
点赞
收藏
分享
正在热议
# 25届秋招总结 #
439972次浏览 4484人参与
# 春招别灰心,我们一人来一句鼓励 #
41352次浏览 523人参与
# 北方华创开奖 #
107247次浏览 599人参与
# 地方国企笔面经互助 #
7914次浏览 18人参与
# 虾皮求职进展汇总 #
113497次浏览 880人参与
# 实习,投递多份简历没人回复怎么办 #
2453683次浏览 34846人参与
# 阿里云管培生offer #
119650次浏览 2219人参与
# 实习必须要去大厂吗? #
55552次浏览 959人参与
# 同bg的你秋招战况如何? #
75178次浏览 548人参与
# 提前批简历挂麻了怎么办 #
149763次浏览 1976人参与
# 投递实习岗位前的准备 #
1195578次浏览 18546人参与
# 你投递的公司有几家约面了? #
33166次浏览 188人参与
# 双非本科求职如何逆袭 #
661770次浏览 7394人参与
# 机械人春招想让哪家公司来捞你? #
157585次浏览 2267人参与
# 如果公司给你放一天假,你会怎么度过? #
4714次浏览 53人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
11214次浏览 253人参与
# 发工资后,你做的第一件事是什么 #
12359次浏览 61人参与
# 工作中,努力重要还是选择重要? #
35521次浏览 384人参与
# 参加完秋招的机械人,还参加春招吗? #
20068次浏览 240人参与
# 实习想申请秋招offer,能不能argue薪资 #
39205次浏览 314人参与
# 我的上岸简历长这样 #
451863次浏览 8087人参与
# 非技术岗是怎么找实习的 #
155831次浏览 2120人参与
牛客网
牛客企业服务