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)
  • 相关阅读:
    oracle中 connect by prior 递归算法
    sql优化__rownum的使用【转】
    ASP.NET Core四大部件
    .net core Socket
    .NET Core 配置文件
    .NET Core IOC AOP
    Quartz.Net—MisFire
    Quartz.Net—配置化
    Quartz.Net—IJob特性
    Quartz.Net—DateBuilder
  • 原文地址:https://www.cnblogs.com/h-hkai/p/9972126.html
Copyright © 2011-2022 走看看