zoukankan      html  css  js  c++  java
  • Java实现 LeetCode 451 根据字符出现频率排序

    451. 根据字符出现频率排序

    给定一个字符串,请将字符串里的字符按照出现的频率降序排列。

    示例 1:

    输入:
    “tree”

    输出:
    “eert”

    解释:
    'e’出现两次,'r’和’t’都只出现一次。
    因此’e’必须出现在’r’和’t’之前。此外,"eetr"也是一个有效的答案。
    示例 2:

    输入:
    “cccaaa”

    输出:
    “cccaaa”

    解释:
    'c’和’a’都出现三次。此外,"aaaccc"也是有效的答案。
    注意"cacaca"是不正确的,因为相同的字母必须放在一起。
    示例 3:

    输入:
    “Aabb”

    输出:
    “bbAa”

    解释:
    此外,"bbaA"也是一个有效的答案,但"Aabb"是不正确的。
    注意’A’和’a’被认为是两种不同的字符。

    class Solution {
           public String frequencySort(String s) {
            int[] map = new int[128];
            for (char ch : s.toCharArray()) {
                map[ch]++;
            }
            int target = -1;
            StringBuilder ans = new StringBuilder();
            while ((target = getChar(map)) > 0) {
                while (map[target]-- > 0) {
                    ans.append((char) target);
                }
            }
            return ans.toString();
        }
        
        private int getChar(int[] counting) {
            int idx = -1, max = 0;
            for (int i = 0; i < 128; i++) {
                if (counting[i] > max) {
                    max = counting[idx = i];
                }
            }
            return idx;
        }
    }
    
  • 相关阅读:
    常用命令之mongodb
    常用之juc
    常用命令
    WSL2错误Error 0x1bc解决
    sudo:Unable to stat '/etc/sudoers': Permission Denied 解决办法
    CPIO写入ROOTFS到磁盘分区
    getElementsByClassName
    PetaLinux通过fw_printenv访问u-boot中的环境变量
    1. 两数之和
    find xargs grep查找文件及文件内容
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13075057.html
Copyright © 2011-2022 走看看