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.
    题目含义:按字母出现次数的降序重排字符串

     1     public String frequencySort(String s) {
     2         Map<Character, Integer> map = new HashMap<>();
     3         for (int i = 0; i < s.length(); i++) {
     4             map.put(s.charAt(i), map.getOrDefault(s.charAt(i), 0)+1);
     5         }
     6         PriorityQueue<Map.Entry<Character, Integer>> pq = new PriorityQueue<>(
     7                 new Comparator<Map.Entry<Character, Integer>>() {
     8                     @Override
     9                     public int compare(Map.Entry<Character, Integer> a, Map.Entry<Character, Integer> b) {
    10                         return b.getValue() - a.getValue();
    11                     }
    12                 }
    13         );
    14         pq.addAll(map.entrySet());
    15         StringBuilder sb = new StringBuilder();
    16         while (!pq.isEmpty()) {
    17             Map.Entry<Character, Integer> e = pq.poll();
    18             for (int i = 0; i < e.getValue(); i++) {
    19                 sb.append(e.getKey());
    20             }
    21         }
    22         return sb.toString();        
    23     }
  • 相关阅读:
    Django ---uploads files
    powershell 更改为Oh-my-zsh
    Ubuntu server 安装Mysql
    Ubuntu下安装Python多版本开发环境
    python virtualenv 虚拟开发环境
    csv文件操作
    Could not load file or assembly ADODB, Version=7.0.3300.0
    sqlserver 循环截取字段中的某些字符
    JSON序列化的长度
    为何HttpContext.Current为NULL
  • 原文地址:https://www.cnblogs.com/wzj4858/p/7719188.html
Copyright © 2011-2022 走看看