aboutsummaryrefslogtreecommitdiff
path: root/sort_char_freq.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sort_char_freq.cpp')
-rw-r--r--sort_char_freq.cpp26
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");
+}