zoukankan      html  css  js  c++  java
  • HJ102字符统计

     1 /**
     2  * @author: yekai  <br/>
     3  * Date: 2021/11/15:22:01  <br/>
     4  * Description:HJ102字符统计
     5  * 输入描述:
     6  * 一个只包含小写英文字母和数字的字符串。
     7  *
     8  * 输出描述:
     9  * 一个字符串,为不同字母出现次数的降序表示。若出现次数相同,则按ASCII码的升序输出。
    10  *
    11  */
    12 import java.util.*;
    13 
    14 public class Main{
    15     public static void main(String[] args){
    16         Scanner sc = new Scanner(System.in);
    17         while(sc.hasNext()){
    18             String s = sc.nextLine();
    19             //统计字符
    20             int[] arr = new int[36];
    21             for(int i=0; i<s.length(); i++){
    22                 char c=s.charAt(i);
    23                 if(c>='a' &&c<='z'){//字母
    24                     arr[c-'a']++;
    25                 }else{//数字
    26                     arr[c-'0'+26]++;
    27                 }
    28             }
    29             //统计结果存入List集合
    30             List<Node> list = new ArrayList<>();
    31             for(int i=0; i<36; i++){
    32                 if(arr[i]!=0){
    33                     if(i<26){//字母
    34                         list.add(new Node((char)('a'+i), arr[i]));
    35                     }else{//数字
    36                         list.add(new Node((char)('0'+i-26), arr[i]));
    37                     }
    38                 }
    39             }
    40             //排序
    41             Collections.sort(list, new Comparator<Node>(){
    42                 public int compare(Node a, Node b){
    43                     if(a.v!=b.v){//根据值排序
    44                         return b.v-a.v;
    45                     }else{//值相等根据ASCII码排序
    46                         return a.k-b.k;
    47                     }
    48                 }
    49             });
    50             //输出结果
    51             for(int i=0; i<list.size(); i++){
    52                 System.out.print(list.get(i).k);
    53             }
    54             System.out.println();
    55         }
    56     }
    57 }
    58 
    59 class Node{
    60     char k;
    61     int v;
    62 
    63     public Node(char k, int v){
    64         this.k=k;
    65         this.v=v;
    66     }
    67 }
  • 相关阅读:
    菜根谭#308
    菜根谭#307
    菜根谭#306
    菜根谭#305
    菜根谭#304
    菜根谭#303
    菜根谭#302
    菜根谭#301
    菜根谭#300
    菜根谭#299
  • 原文地址:https://www.cnblogs.com/yekaiit/p/15560919.html
Copyright © 2011-2022 走看看