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 }
时间: 2024-11-05 23:31:51

PAT——1042. 字符统计的相关文章

PAT 1042. 字符统计

1042. 字符统计 请编写程序,找出一段给定文字中出现最频繁的那个英文字母. 输入格式: 输入在一行中给出一个长度不超过1000的字符串.字符串由ASCII码表中任意可见字符及空格组成,至少包含1个英文字母,以回车结束(回车不算在内). 输出格式: 在一行中输出出现频率最高的那个英文字母及其出现次数,其间以空格分隔.如果有并列,则输出按字母序最小的那个字母.统计时不区分大小写,输出小写字母. 输入样例: This is a simple TEST. There ARE numbers and

PAT 1042. 字符统计(20)

请编写程序,找出一段给定文字中出现最频繁的那个英文字母. 输入格式: 输入在一行中给出一个长度不超过1000的字符串.字符串由ASCII码表中任意可见字符及空格组成,至少包含1个英文字母,以回车结束(回车不算在内). 输出格式: 在一行中输出出现频率最高的那个英文字母及其出现次数,其间以空格分隔.如果有并列,则输出按字母序最小的那个字母.统计时不区分大小写,输出小写字母. 输入样例: This is a simple TEST. There ARE numbers and other symbo

PAT 乙级 1042 字符统计(20) C++版

1042. 字符统计(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 请编写程序,找出一段给定文字中出现最频繁的那个英文字母. 输入格式: 输入在一行中给出一个长度不超过1000的字符串.字符串由ASCII码表中任意可见字符及空格组成,至少包含1个英文字母,以回车结束(回车不算在内). 输出格式: 在一行中输出出现频率最高的那个英文字母及其出现次数,其间以空格分隔.如果有并列,则输出按字母序最小的那个字

1042 字符统计 (20 分)

题目链接:1042 字符统计 (20 分) 这道题目比较简单.但是需要注意: 1.题目要求统计字母不按照大小写且输出小写. 2.字符串中包含空格,所以要用getline(cin,str)操作. 3.map<char,int>中是红黑树,所以会按照第一个键值的升序排列. 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 int main() 5 { 6 string str; 7 getline(cin,str); 8 int

PAT B1042 字符统计

PAT B1042 字符统计 题目描述: 请编写程序,找出一段给定文字中出现最频繁的那个英文字母. 输入格式: 输入在一行中给出一个长度不超过 1000 的字符串.字符串由 ASCII 码表中任意可见字符及空格组成,至少包含 1 个英文字母,以回车结束(回车不算在内). 输出格式: 在一行中输出出现频率最高的那个英文字母及其出现次数,其间以空格分隔.如果有并列,则输出按字母序最小的那个字母.统计时不区分大小写,输出小写字母. 输入样例: This is a simple TEST.  There

PTA乙级 (1042 字符统计 (20分))

1042 字符统计 (20分) https://pintia.cn/problem-sets/994805260223102976/problems/994805280817135616 #include <iostream> #include <cstdio> #include <cmath> #include <algorithm> #include <cstring> #include <string> using namesp

PAT乙级-1042. 字符统计(20)

请编写程序,找出一段给定文字中出现最频繁的那个英文字母. 输入格式: 输入在一行中给出一个长度不超过1000的字符串.字符串由ASCII码表中任意可见字符及空格组成,至少包含1个英文字母,以回车结束(回车不算在内). 输出格式: 在一行中输出出现频率最高的那个英文字母及其出现次数,其间以空格分隔.如果有并列,则输出按字母序最小的那个字母.统计时不区分大小写,输出小写字母. 输入样例: This is a simple TEST. There ARE numbers and other symbo

1042. 字符统计(20)

请编写程序,找出一段给定文字中出现最频繁的那个英文字母. 输入格式: 输入在一行中给出一个长度不超过1000的字符串.字符串由ASCII码表中任意可见字符及空格组成,至少包含1个英文字母,以回车结束(回车不算在内). 输出格式: 在一行中输出出现频率最高的那个英文字母及其出现次数,其间以空格分隔.如果有并列,则输出按字母序最小的那个字母.统计时不区分大小写,输出小写字母. 输入样例: This is a simple TEST. There ARE numbers and other symbo

1042 字符统计

请编写程序,找出一段给定文字中出现最频繁的那个英文字母. 输入格式: 输入在一行中给出一个长度不超过 1000 的字符串.字符串由 ASCII 码表中任意可见字符及空格组成,至少包含 1 个英文字母,以回车结束(回车不算在内). 输出格式: 在一行中输出出现频率最高的那个英文字母及其出现次数,其间以空格分隔.如果有并列,则输出按字母序最小的那个字母.统计时不区分大小写,输出小写字母. 输入样例: This is a simple TEST. There ARE numbers and other