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
vector<vector<string>> res;
if (strings.empty() || k == 0) return res;
unordered_map<string, int> mp;
for (auto& s : strings) {
mp[s]++;
}
vector<pair<string, int>> v(mp.begin(), mp.end());
sort(v.begin(), v.end(), [](auto & a, auto & b) {
if (a.second != b.second) return a.second > b.second; // 次数降序
return a.first < b.first; // 次数相同按字典序
});
for (int i = 0; i < k && i < v.size(); i++) {
res.push_back({v[i].first, to_string(v[i].second)});
}
return res;
}
};