天天看点

2022年第十三届蓝桥杯Java B组第三题:字符统计

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来转换
            }
        }
    }
 
}      
2022年第十三届蓝桥杯Java B组第三题:字符统计