• leetcode 451. Sort Characters By Frequency


     
    Medium

    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.


    class Solution {
    public:
        string frequencySort(string s) {
            int len = s.size();
            // 建立一个hash表
            unordered_map<char, int> hash;
            // 建立频率和字符的对应关系
            vector<string> vec(len+1, "");
            
            for(auto ch: s) hash[ch]++;
            
            for(auto val: hash) vec[val.second].append(val.second, val.first);
            
            string ans;
            for(int i = len; i > 0; i--)
                ans += vec[i];
            return ans;
    
        }
    };



  • 相关阅读:
    Java 代码中如何调用 第三方Api
    如何编写README.md
    Gof 设计模式
    系统架构师-笔记
    我的账户
    软件设计师-成绩查询
    spring data jpa
    日志 logback
    spring boot 整合 Camunda
    Spring 中 bean 的生命周期?
  • 原文地址:https://www.cnblogs.com/simplepaul/p/10841594.html
Copyright © 2020-2023  润新知