zoukankan      html  css  js  c++  java
  • 451. Sort Characters By Frequency (sort map)

    Given a string, sort it in decreasing order based on the frequency of characters.

    Example 1:

    Input:
    "tree"
    
    Output:
    "eert"
    
    Explanation:
    'e' appears twice while 'r' and 't' both appear once.
    So 'e' must appear before both 'r' and 't'. Therefore "eetr" is also a valid answer.
    

    Example 2:

    Input:
    "cccaaa"
    
    Output:
    "cccaaa"
    
    Explanation:
    Both 'c' and 'a' appear three times, so "aaaccc" is also a valid answer.
    Note that "cacaca" is incorrect, as the same characters must be together.
    

    Example 3:

    Input:
    "Aabb"
    
    Output:
    "bbAa"
    
    Explanation:
    "bbaA" is also a valid answer, but "Aabb" is incorrect.
    Note that 'A' and 'a' are treated as two different characters.

    Approach #1: c++.

    class Solution {
    public:
        string frequencySort(string s) {
            unordered_map<char, int> mp;
            string ans = "";
            for (int i = 0; i < s.length(); ++i) {
                mp[s[i]]++;
            }
            vector<pair<char, int>> v(mp.begin(), mp.end());
            sort(v.begin(), v.end(), cmp);
            for (int i = 0; i < v.size(); ++i) {
                while (v[i].second--) {
                    ans += v[i].first;
                }
            }
            return ans;
        }
        
    private:
        static bool cmp(pair<char, int> a, pair<char, int> b) {
            return a.second > b.second;
        }
    };
    

      

    永远渴望,大智若愚(stay hungry, stay foolish)
  • 相关阅读:
    java学习大方向
    js总结001
    MySQL总结
    快捷键
    java基础总结001
    网络设备的发展与作用(冲突域与广播域)
    二进制&八进制&十六进制之间的快速转换------ 心算&笔算方法总结
    IP地址的定义和划分
    初学Linux基本的命令操作应当记牢
    JDK的下载与安装
  • 原文地址:https://www.cnblogs.com/h-hkai/p/9972126.html
Copyright © 2011-2022 走看看