示例1
输入: ["a","b","c","b"],2 返回值: [["b","2"],["a","1"]] 说明: "b"出现了2次,记["b","2"],"a"与"c"各出现1次,但是a字典序在c前面,记["a","1"],最后返回[["b","2"],["a","1"]]
示例2
输入: ["123","123","231","32"],2 返回值: [["123","2"],["231","1"]] 说明: "123"出现了2次,记["123","2"],"231"与"32"各出现1次,但是"231"字典序在"32"前面,记["231","1"],最后返回[["123","2"],["231","1"]]
示例3
输入: ["abcd","abcd","abcd","pwb2","abcd","pwb2","p12"],3 返回值: [["abcd","4"],["pwb2","2"],["p12","1"]]code:
class Solution {
public:
vector > topKstrings(vector& strings, int k) {
// write code here
int i;
mapstringMap;
map::iterator it;
for(i=0;isecond+1;
}
else
{
stringMap.insert(pair(strings[i],1));
}
}
// sort(stringMap.begin(),stringMap.end(),cmp_by_value);
vector >res;
for(it=stringMap.begin();it!=stringMap.end();++it)
{
vectortemp;
temp.push_back(it->first);
temp.push_back(to_string(it->second));
res.push_back(temp);
}
for(int j=0;jres[k+1][0])
{
isswap=true;
swap(res[k][0],res[k+1][0]);
swap(res[k][1],res[k+1][1]);
}
}
}
if(isswap==false)
break;
}
res.resize(k);
return res;
}
};



