【问题描述】
小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组 成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不 住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得 最多来分辨单词。
现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这 个字母出现的次数。
【输入格式】
输入一行包含一个单词,单词只由小写英文字母组成。
【输出格式】
输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪 个。如果有多个字母出现的次数相等,输出字典序最小的那个。
第二行包含一个整数,表示出现得最多的那个字母在单词中出现的次数。
【样例输入】 lanqiao
【样例输出】 a 2
【样例输入】 longlonglongistoolong
试题G: 单词分析 9
第十一届蓝桥杯大赛软件类省赛第二场 Java 大学 C 组
【样例输出】 o 6
package _11第十一届2;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
/*
* 试题 G: 单词分析 时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分
【问题描述】
小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组 成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不 住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得 最多来分辨单词。
现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这 个字母出现的次数。
【输入格式】
输入一行包含一个单词,单词只由小写英文字母组成。
【输出格式】
输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪 个。如果有多个字母出现的次数相等,输出字典序最小的那个。
第二行包含一个整数,表示出现得最多的那个字母在单词中出现的次数。
【样例输入】 lanqiao
【样例输出】 a 2
【样例输入】 longlonglongistoolong
思路:用到Hashmap 存键和值
*/
public class Test07单词分析 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
char []ch=in.nextLine().toCharArray();
Map<Character,Integer> map =solve(ch);
char an=0; //字符
int ans =0; //个数
for(Map.Entry<Character, Integer> mm:map.entrySet()) {
int flag=mm.getValue();
if(flag>ans) {
ans=flag;
an=mm.getKey();
}
}
System.out.println(an);
System.out.println(ans);
}
private static Map<Character, Integer> solve(char[] ch) {
// TODO Auto-generated method stub
Map<Character,Integer>map =new HashMap<Character, Integer>();
for (char c : ch) {
char flag=c;
Integer v=map.get(c);
if(v==null) {
map.put(c,1);
}else {
map.put(c,v+1);
}
}
return map;
}
}