diff options
Diffstat (limited to 'sort_char_freq.cpp')
-rw-r--r-- | sort_char_freq.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/sort_char_freq.cpp b/sort_char_freq.cpp new file mode 100644 index 0000000..ea7d8af --- /dev/null +++ b/sort_char_freq.cpp @@ -0,0 +1,26 @@ +#include "leetcode.h" + +class Solution { +public: + string frequencySort(string s) { + unordered_map<char, int> freq; + for (auto a : s) + freq[a]++; + priority_queue<pair<int, char>> pqp; + for (auto [a, f] : freq) + pqp.push({f, a}); + string ans; + pair<int, char> curr; + while (!pqp.empty()) { + curr = pqp.top(); + pqp.pop(); + ans += string(curr.first, curr.second); + } + return ans; + } +}; + +int main() { + Solution obj; + cout << obj.frequencySort("tree"); +} |