本文共 1046 字,大约阅读时间需要 3 分钟。
7.字符统计
题目描述
输入一个只包含小写英文字母和数字的字符串,按照不同字符统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASCII码由小到大排序输出。
输入描述:
一个只包含小写英文字母和数字的字符串。
输出描述:
一个字符串,为不同字母出现次数的降序表示。若出现次数相同,则按ASCII码的升序输出。
输入
aaddccddc1b1bbbbbbbbb
输出
cdab1
分析
1.键盘录入一个字符串
2.将其转换为char类型的数组进行存储
3.建立一个128长的数组,因为ASCII码是128个
4.对每一个字符进行标记,并统计次数
5.挑选出出现次数最多的,开始拼接
代码实现
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main7 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str; while ((str = br.readLine()) != null) { char[] c = str.toCharArray(); int[] arr = new int[128];//ASCII码 128个 for (int i = 0; i < c.length; i++) { arr[c[i]]++; } int max = 0; for (int i = 0; i < arr.length; i++) { if (max < arr[i]) max = arr[i]; } StringBuilder sb = new StringBuilder(); while (max != 0) { for (int i = 0; i < arr.length; i++) { if (arr[i] == max) sb.append((char) i); } max--; } System.out.println(sb.toString()); } }}
转载地址:http://vzjki.baihongyu.com/