- 前K个高频单词
给一非空的单词列表,返回前 k 个出现次数最多的单词。
返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。
class Solution {
public:
bool static cmp(const pair<string, int> a, const pair<string, int> b) {
if (a.second == b.second) {
return a.first < b. first;
}
return a.second > b.second;
}
vector<string> topKFrequent(vector<string>& words, int k) {
map<string, int> mp;
for (int i = 0; i < words.size(); i++) {
string s = words[i];
mp[s]++;
}
vector<pair<string, int>> vec(mp.begin(), mp.end());
sort(vec.begin(), vec.end(), cmp);
vector<string> res;
// for (pair<string, int> p : vec) {
// cout << p.first << " " << p.second << endl;
// }
for (int i = 0; i < k; i++) {
res.push_back(vec[i].first);
}
return res;
}
};