2022年第十三届蓝桥杯Java B组第三题:字符统计
- 🍋问题描述
- 🍋解题思路
- 🍋解题代码
- 🍋其他真题
🍋问题描述
【问题描述】
给定一个只包含大写字母的字符串 S,请你输出其中出现次数最多的字母。
如果有多个字母均出现了最多次,按字母表顺序依次输出所有这些字母。
【输入格式】
一个只包含大写字母的字符串 S.
【输出格式】
若干个大写字母,代表答案。
【样例输入】
BABBACAC
【样例输出】
AB
【评测用例规模与约定】
对于 100% 的评测用例,1 ≤ |S | ≤ 106.
🍋解题思路
这次的题目又出现了新的变化, 第3道题就是代码编程题。
这道题还是简单的。
对输入的字符串进行遍历,找到每个字符的出现次数。
之后得到最大次数,之后输出满足最大次数的字母,可能有多个。
🍋解题代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);//输入的前提条件
String st=in.nextLine();//输入字符串
long[] a=new long [26];//对应26个字母
for(int i=0;i<st.length();i++) {//暴力
a[st.charAt(i)-'A']++;
}
long max=0;
for(int i=0;i<26;i++) {//找出出现次数最大的数值
max=Math.max(max, a[i]);
}
for(int i=0;i<26;i++) {//只要是次数最大的数值,就输出。可能有多个
if(a[i]==max) {
System.out.print( (char) ('A'+i));//用char来转换
}
}
}
}
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cGcq5iM2AjN5MjYwcTNzITOlBjZyYzXxUDN0gTM4AzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.jpg)