zoukankan      html  css  js  c++  java
  • 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;
    
        }
    };



  • 相关阅读:
    感想2
    感想1
    记录4
    记录3
    记录2
    记录1
    库存物资管理系统-测试
    开学测试
    大二下开学测试有感
    大二下周总结一
  • 原文地址:https://www.cnblogs.com/simplepaul/p/10841594.html
Copyright © 2011-2022 走看看