• 33:字符统计SumOfCharactors


    题目描述:如果统计的个数相同,则按照ASII码由小到大排序输出 。如果有其他字符,则对这些字符不用进行统计。

    实现以下接口:

        输入一个字符串,对字符中的各个英文字符,数字,空格进行统计(可反复调用)

        按照统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASII码由小到大排序输出

        清空目前的统计结果,重新统计

    调用者会保证:

    输入的字符串以‘’结尾。

    输入描述:输入一串字符。

    输出描述:对字符中的各个英文字符(大小写分开统计),数字,空格进行统计,并按照统计个数由多到少输出,如果统计的个数相同,则按照ASII码由小到大排序输出 。如果有其他字符,则对这些字符不用进行统计。

    输入例子:

    aadddccddc

    输出例子:

    dca

     思路:1:ascii表从0到127,一共128个,一个int[]数组,下表存放字符对应的ascii值,数组值存放该字符出现的次数,

    2:用一个max统计当前数组出现次数最多的字符出现的个数

    3:用max循环,从大到小输出字符

     

     1 package huawei2;
     2 
     3 import java.util.Collection;
     4 import java.util.Collections;
     5 import java.util.Iterator;
     6 import java.util.LinkedHashMap;
     7 import java.util.Map;
     8 import java.util.Map.Entry;
     9 import java.util.Scanner;
    10 
    11 /*题目描述:如果统计的个数相同,则按照ASII码由小到大排序输出 。如果有其他字符,则对这些字符不用进行统计。
    12 实现以下接口:
    13     输入一个字符串,对字符中的各个英文字符,数字,空格进行统计(可反复调用)
    14     按照统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASII码由小到大排序输出
    15     清空目前的统计结果,重新统计
    16 调用者会保证:
    17 输入的字符串以‘’结尾。
    18 输入描述:输入一串字符。
    19 输出描述:对字符中的各个英文字符(大小写分开统计),数字,空格进行统计,并按照统计个数由多到少输出,如果统计的个数相同,则按照ASII码由小到大排序输出 。如果有其他字符,则对这些字符不用进行统计。
    20 输入例子:
    21 aadddccddc
    22 输出例子:
    23 dca*/
    24 public class SumOfCharactors {
    25 
    26     public static void main(String[] args) {
    27         Scanner in = new Scanner(System.in);
    28         while(in.hasNext())
    29         {
    30             String input = in.nextLine();
    31             int array[] = new int[128];
    32             //初始化存放ascii码的数组,下表ascii,value出现的次数
    33             for(int i = 0;i<array.length;i++ )
    34             {
    35                 array[i] = 0;
    36             }
    37             //统计各个字符(转换成ascii出现的次数)
    38             for(int j = 0; j<input.length(); j++)
    39             {
    40                 array[input.charAt(j)]++;
    41                 //array[(int)input.charAt(j)]++;
    42             }
    43             int max = 0;//max表示数组中当前出现次数最多元素的次数
    44             //寻找出现次数最多元素的个数
    45             for(int j = 0; j< array.length;j++)
    46             {
    47                 if(array[j] > max)
    48                 {
    49                     max = array[j];
    50                 }
    51             }
    52             //按照出现次数依次输出
    53             while(max!=0)
    54             {
    55                 for(int i = 0; i<array.length; i++)
    56                 {
    57                     if(max == array[i])
    58                         System.out.print((char)i);
    59                 }
    60                 max--;
    61             }
    62             //char[] array = input.toCharArray();
    63             //Map<Character, Integer> map = new LinkedHashMap<>();
    64 //            Iterator<Entry<Character, Integer>> iterator = map.entrySet().iterator();
    65 //            while(iterator.hasNext()){}
    66             
    67             
    68         }
    69     }
    70 
    71 }
    72 /*测试用例:
    73 8v26ktzk069lm400061m0v965we88850o6omqi532ktir6esb55t0kqm026y8rk63aj82kcx48gd1tiylvs0xo32zem65q7z5ce2185d2ascz62a2p3ajr45h637t2p290lc043gicp5ldzzmx2
    74 对应输出应该为:
    75 206583kmzct4aeil19dopqrsvx7gjybhw
    76 你的输出为:
    77 206583kmzct4aeil19dopqrsvx7gjybhw0751462839jcybodpnwxzikmfehluagtqrsv*/

    可能循环处理输出出错,输出容器没有清理干净

  • 相关阅读:
    SSH的密钥登录配置
    VMware 15pro虚拟机网络设置
    12种SQL注入报错方式
    PHP myadmin 无路径getshell
    MySQL数据库基本操作
    ubuntu 16.04安装后的简单优化
    无聊中,静思自己。
    Silverlight 4.0+Linq to sql 网站后台登陆功能(一)
    AspNetPager和Linq to sql 的完美结合
    Linq to sql 的DataContext 持久化层写法
  • 原文地址:https://www.cnblogs.com/newcoder/p/5812939.html
Copyright © 2020-2023  润新知