• PAT——1042. 字符统计


    请编写程序,找出一段给定文字中出现最频繁的那个英文字母。

    输入格式:

    输入在一行中给出一个长度不超过1000的字符串。字符串由ASCII码表中任意可见字符及空格组成,至少包含1个英文字母,以回车结束(回车不算在内)。

    输出格式:

    在一行中输出出现频率最高的那个英文字母及其出现次数,其间以空格分隔。如果有并列,则输出按字母序最小的那个字母。统计时不区分大小写,输出小写字母。

    输入样例:

    This is a simple TEST.  There ARE numbers and other symbols 1&2&3...........
    

    输出样例:

    e 7


     1 package com.hone.basical;
     2 
     3 import java.util.Scanner;
     4 
     5 /**
     6  * 原题目:https://www.patest.cn/contests/pat-b-practise/1039
     7  * @author Xia
     8  * 思路:首先处理题目中的条件
     9  * (1)不区分大小写字母,则可以利用toLowerCase()将字符中所有的大写字母都转化为小写
    10  * (2)可以先去掉空格的字符(利用正则表达式来实现)
    11  * (3)方法:默认第一个字符为出现次数最多的字符,然后用后面的字符与他做比较,如果字符个数大于
    12  *       当前字符,则继续判断是否为小写字母,如果满足,则将字符替换,以及字符次数替换。
    13  *   如果字符次数相同,则比较当前字符出现的次数和max的大小,然后再做替换。
    14  */
    15 
    16 public class basicalLevel1042charCount {
    17     public static void main(String[] args) {
    18         Scanner in = new Scanner(System.in);
    19         //定义一个数组用于存储
    20         String content = in.nextLine();
    21         int max = 0;            //定义最多字符个数
    22         char maxchar = 0;        //定义最多字符
    23         content = content.replaceAll("\s+", "");        //去掉空白字符,制表符
    24         content = content.toLowerCase();
    25         int[] a = new int[300];
    26         for (int i = 0; i < content.length(); i++) {
    27             a[content.charAt(i)]++;            //这里仍然采取前面多次使用的(将读入的数作为下标)        
    28             if ((a[content.charAt(i)] > max)&&(content.charAt(i)>=97&&content.charAt(i)<=122)) {
    29                 max = a[content.charAt(i)];
    30                 maxchar = content.charAt(i);
    31             }
    32             //这里用一个if判断让其输出并且的时候最小的字符
    33             if ((a[content.charAt(i)] == max)&&(content.charAt(i)>=97&&content.charAt(i)<=122)) {
    34                 if (content.charAt(i)<maxchar) {
    35                     max = a[content.charAt(i)];
    36                     maxchar = content.charAt(i);
    37                 }
    38             }
    39         }
    40         System.out.println(maxchar+" "+max);
    41     }    
    42 }
  • 相关阅读:
    (二)全局属性
    (十二)this关键字
    (十一)构造方法的重载和成员方法的重载
    (十)foreac遍历、break和countinue以及标签和switch循环
    java集合
    关于java赋值操作的原子性问题
    spring list map set
    apache benchmark
    为什么java web项目中要使用spring
    spring IOC
  • 原文地址:https://www.cnblogs.com/xiaxj/p/7991656.html
Copyright © 2020-2023  润新知