AcWing
  • 首页
  • 活动
  • 题库
  • 竞赛
  • 应用
  • 更多
    • 题解
    • 分享
    • 商店
    • 问答
  • 吐槽
  • 登录/注册

AcWing 4664. 字符统计——十三届蓝桥(Java)    原题链接    简单

作者: 作者的头像   念心卓 ,  2022-10-04 08:04:45 ,  所有人可见 ,  阅读 99


1


题目描述

给定一个只包含大写字母的字符串 S,请你输出其中出现次数最多的字母。

如果有多个字母均出现了最多次,按字母表顺序依次输出所有这些字母。


输入格式

一个只包含大写字母的字符串 S。

输出格式

若干个大写字母,代表答案。


数据范围
对于 100% 的评测用例,1≤|S|≤106。


输入样例:

BABBACAC

输出样例:

AB

Java代码

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class Main {

    public static void main(String[] args) throws IOException {
        Map<Character, Integer> map = new TreeMap();//按照key排序的map集合,防止后面再次排序
        BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
        String str = buf.readLine();

        for (int i = 0; i < str.length(); i++) {
            char ch = str.charAt(i);
            if(map.containsKey(ch)){//如果集合包含这个元素,则让其value+1
                map.put(ch, map.get(ch)+1);
            }else{
                map.put(ch, 1);//否则把他放入集合中
            }
        }
        int max = 1;
        for (Map.Entry<Character, Integer> entry : map.entrySet()) {
            if(max < entry.getValue()){
                max = entry.getValue();//找到最大的value
            }
        }
        for (Map.Entry<Character, Integer> entry : map.entrySet()) {
            if(entry.getValue() == max){
                System.out.print(entry.getKey());//根据最大的value输出key值
            }

        }
    }

}


0 评论

你确定删除吗?
1024
x

© 2018-2023 AcWing 版权所有  |  京ICP备17053197号-1
用户协议  |  常见问题  |  联系我们
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标
请输入绑定的邮箱地址
请输入注册信息