解题思路:
先把每个字符当做唯一出现,再除去相同字母的排列次数
注意事项:
在输入的时候,记录出现字符最多的次数,并将每个字符以及其次数用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分
6 人评分
import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); String s = scanner.next(); char[] cArr = s.toCharArray(); int[] count =new int[26]; for (int i = 0; i < cArr.length; i++) { byte b = (byte)cArr[i]; count[b-65]++; } int[] countCopy = Arrays.copyOf(count,count.length); Arrays.sort(countCopy); int maxCount = countCopy[countCopy.length-1]; for (int i = 0; i < count.length; i++) {
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:590 |
C二级辅导-公约公倍 (C语言代码)浏览:1550 |
C语言训练-计算一个整数N的阶乘 (C语言代码)浏览:986 |
【亲和数】 (C语言代码)浏览:588 |
C语言程序设计教程(第三版)课后习题10.1 (Java代码)浏览:1494 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:436 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:603 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:693 |
三角形 (C语言代码)浏览:965 |
母牛的故事 (C语言代码)浏览:1451 |
小鸿很平凡 2022-08-30 21:39:35 |
比我的简单一点