LanQiaoTestCodes/字符统计.java

45 lines
1020 B
Java

package LanQiaoOJ;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;
/*给定一个只包含大写字母的字符串 S, 请你输出其中出现次数最多的字符。
如果有多个字母均出现了最多次, 按字母表顺序依次输出所有这些字母。
输入格式
一个只包含大写字母的字符串 S.
输出格式
若干个大写字母,代表答案。 */
public class 字符统计 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String s=sc.next();
//需要一个东西去统计每个字符出现的次数
HashMap<Character,Integer>hashMap=new HashMap<>();
for(int i=0;i<s.length();i++) {
char c=s.charAt(i);
hashMap.put(c, hashMap.getOrDefault(c,0)+1);
}
//统计出现最多的字符
int max=0;
//用来存答案
ArrayList<Character> list=new ArrayList<>();
for(char key:hashMap.keySet()) {
int x=hashMap.get(key);
if(x>max) {
list.clear();
list.add(key);
max=x;
}else if(x==max) {
list.add(key);
}
}
for(char c:list) {
System.out.print(c);
}
}
}