解题思路:
先把每个字符当做唯一出现,再除去相同字母的排列次数
注意事项:
在输入的时候,记录出现字符最多的次数,并将每个字符以及其次数用HashMap存储。再次遍历HashMap,将出现次数等于最多的加入到一个TreeSet中,最后TreeSet能维持字典序,输出TreeSet元素为答案
参考代码:
import java.util.HashMap; import java.util.Map; import java.util.Scanner; import java.util.Set; import java.util.TreeSet; public class Main{ public static void main(String[] args) { Scanner scanner=new Scanner(System.in); String string = scanner.next(); Map<Character, Integer> map = new HashMap<>(); int ans_count = Integer.MIN_VALUE; for(int i=0;i<string.length();i++) { char c = string.charAt(i); if(map.get(c)==null) { map.put(c, 1); }else { map.put(c, map.get(c)+1); } if(map.get(c)>ans_count) { ans_count=map.get(c); } } Set<Character> ansCharacters = new TreeSet<>(); for(Map.Entry<Character, Integer> entry:map.entrySet()) { if(entry.getValue()==ans_count) { ansCharacters.add(entry.getKey()); } } for(Character c:ansCharacters) { System.out.print(c); } } }
0.0分
3 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复