OJ-------字符统计**(自带比较)
来源:互联网 发布:网络被攻击了怎么办 编辑:程序博客网 时间:2024/06/05 11:51
如果统计的个数相同,则按照ASII码由小到大排序输出 。如果有其他字符,则对这些字符不用进行统计。
实现以下接口: 输入一个字符串,对字符中的各个英文字符,数字,空格进行统计(可反复调用) 按照统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASII码由小到大排序输出 清空目前的统计结果,重新统计调用者会保证:输入的字符串以‘\0’结尾。
输入一串字符。
对字符中的
各个英文字符(大小写分开统计),数字,空格进行统计,并按照统计个数由多到少输出,如果统计的个数相同,则按照ASII码由小到大排序输出 。如果有其他字符,则对这些字符不用进行统计。
import java.util.*;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { String input = scanner.nextLine(); System.out.println(count(input)); } scanner.close(); } private static String count(String s) { Set<Node> set = new TreeSet<>(new Comparator<Node>() { @Override public int compare(Node t, Node s) { if (t.v != s.v) { return s.v - t.v; } return t.c - s.c; } }); Map<Character, Node> map = new HashMap<>(s.length()); for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c >= '0' && c <= '9' || c ==' ') { if (map.containsKey(c)) { map.get(c).v++; } else { map.put(c, new Node(c, 1)); } } } for (Node n : map.values()) { set.add(n); } StringBuilder builder = new StringBuilder(set.size()); for (Node n : set) { builder.append(n.c); } return builder.toString(); } private static class Node { private char c; private int v; public Node(char c, int v) { this.c = c; this.v = v; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Node node = (Node) o; return c == node.c; } @Override public int hashCode() { return (int) c; } }}
0 0
- OJ-------字符统计**(自带比较)
- 华为OJ(字符统计)
- 华为OJ题目(三):字符统计
- 华为OJ-字符统计
- 华为oj 字符统计
- 【华为 OJ】字符统计
- OJ--------字符个数统计
- 【华为OJ】字符统计
- 华为oj 字符统计
- 【华为OJ】统计字符个数
- 华为 OJ 字符个数统计
- 华为oj 等差数列&&字符统计
- 【华为OJ】【053-字符统计】
- 华为OJ 初级:字符统计
- 【华为 OJ 】字符个数统计
- 字符统计1 (sdut oj)
- 字符统计2 (sdut oj)
- 刷清橙OJ--A1026.字符统计
- POJ 3414 Pots BFS
- 【OK6410裸机程序】时钟初始化
- 263. Ugly Number
- HDU 5828 Rikka with Sequence(线段树)
- android上WebView设置cookie,以及设置webview cookie在部分手机失效
- OJ-------字符统计**(自带比较)
- 架构师之路--服务器集群搭建、管理、与快速部署
- 转载Android Audio架构
- 第一篇技术博客,人生的第一篇博客!
- 二叉排序树
- 用Java模仿银行自助存取一体机(ATM)
- NOIPの模拟_2016_8_11_t2_种树
- 原根
- jQueryAJAX的$.ajax()用jsonp解决跨域问题