题目
给定一个只包含大写字母的字符串 S,请你输出其中出现次数最多的字母。
如果有多个字母均出现了最多次,按字母表顺序依次输出所有这些字母。
输入
一个只包含大写字母的字符串 S .
样例输入:BABBACAC
输出
若干个大写字母,代表答案。
样例输出:AB
题解
import java.util.*;
public class Main {
public static void main(String[] args) {
//获取输入
Scanner input = new Scanner();
String s = input.next();
char[] chars = s.toCharArray();
//统计字符串
Map<Character,Integer> map = new HashMap<>();
for(char c : chars){
map.put(c, map.getOrDefault(c, 0) + 1)
}
//求出出现次数最多的字符
int countmax = 0;
for(int count : map.values()){
if(count > maxcount){
maxcount = count;
}
}
//保存次数最多的字符
List<Character> maxCountChars = new ArrayList<>();
for (char c : map.keySet()) {
if (map.get(c) == maxCount) {
maxCountChars.add(c);
}
}
//排序
Collections.sort(maxCountChars);
//输出
for (char c : maxCountChars) {
System.out.print(c);
}
}
}