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來轉換
}
}
}
}
