zoukankan      html  css  js  c++  java
  • 451. Sort Characters By Frequency

    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.

    按照字符出现次数对字符串排序

    C++:
     1 class Solution {
     2 public:
     3     string frequencySort(string s) {
     4         unordered_map<char,int> cntMap ;
     5         for(char c : s){
     6             cntMap[c]++ ;
     7         }
     8         vector<vector<char>> buckets(s.size()+1) ;
     9         for(auto m : cntMap){
    10             buckets[m.second].push_back(m.first) ;
    11         }
    12         string res = "" ;
    13         for(int i = buckets.size()-1 ; i >= 0 ; i--){
    14             for(char c : buckets[i]){
    15                 for(int j = 0 ; j < i ; j++){
    16                     res += c ;
    17                 }
    18             }
    19         }
    20         return res ;
    21     }
    22 };
     
  • 相关阅读:
    UVaLive 7362 Farey (数学,欧拉函数)
    UVaLive 7361 Immortal Porpoises (矩阵快速幂)
    UVaLive 7359 Sum Kind Of Problem (数学,水题)
    CodeForces 706D Vasiliy's Multiset (字典树查询+贪心)
    负载均衡服务器
    集群-如何理解集群?
    架构规划
    领域模型
    状态图
    E-R图
  • 原文地址:https://www.cnblogs.com/mengchunchen/p/10326013.html
Copyright © 2011-2022 走看看