Leetcode 451. 根据字符出现频率排序 解题思路及C++实现
生活随笔
收集整理的這篇文章主要介紹了
Leetcode 451. 根据字符出现频率排序 解题思路及C++实现
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
解題思路:
先使用unordered_map對字符串s中字符,進行頻數(shù)統(tǒng)計;
再使用最大堆,對unorder_map進行排序;
接著將排序結果存在結果字符串res中。
?
class Solution { public:string frequencySort(string s) {//使用unordered_map統(tǒng)計字符串s中個字符的出現(xiàn)頻數(shù)unordered_map<char, int> mp;for(auto ch: s) mp[ch]++;//使用最大堆,遍歷unordered_mappriority_queue<pair<int, char> > pq;for(auto num: mp) pq.push(make_pair(num.second, num.first));//將排序結果放在res中string res;while(!pq.empty()){for(int i = 0; i < pq.top().first; i++){res.push_back(pq.top().second);}pq.pop();}return res;} };?
?
?
?
總結
以上是生活随笔為你收集整理的Leetcode 451. 根据字符出现频率排序 解题思路及C++实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leetcode 378. 有序矩阵中第
- 下一篇: Leetcode 122. 买卖股票的最