题解 | #字符统计#

字符统计

https://www.nowcoder.com/practice/c1f9561de1e240099bdb904765da9ad0

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        // while (in.hasNextInt()) { // 注意 while 处理多个 case
        //     int a = in.nextInt();
        //     int b = in.nextInt();
        //     System.out.println(a + b);
        // }
        String s = in.nextLine();
        char[] cs = s.toCharArray();
        int len = cs.length;
        List<Node> list = new ArrayList<>();
        for (int i = 0; i < len; i++) {
            char c = cs[i];
            boolean exit = false;
            for (int j = 0; j < list.size(); j++) {
                Node node = list.get(j);
                if (c == node.c) {
                    node.count++;
                    exit = true;
                }
            }
            if (!exit) {
                list.add(new Node(c));
            }
        }
        Collections.sort(list);
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i).c);
        }
    }
}

class Node implements Comparable<Node>{
    char c;
    int count = 0;
    Node (char c) {
        this.c = c;
    }
    public int compareTo(Node node) {
        if (this.count == node.count) {
            return this.c - node.c;
        } else {
            return node.count - this.count;
        }
    }
}

全部评论

相关推荐

矫健的闭门羹烹饪师又熬夜了:本人双非本,在鹅厂测开实习,你这个简历上写的这两个项目的技术栈都差不多,能够让面试官去延伸去问的八股除了redis就再没啥了,建议项目这边可以再改改,然后专业技能那块的话,感觉linux和测试工具可以分开写,毕竟不是干一件事的,反正没实习的基础上面试就深挖项目和八股,好好卷吧
点赞 评论 收藏
分享
自学java狠狠赚一笔:骗你点star的,港卵公司,记得把star收回去
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务