题目描述
输入一个长度小于等于256,大于0,且只包含数字的字符串,统计其中出现最多数字的个数。
若有多个数字的个数并列最多,取最先出现的数字。
输出该数字及个数做成的字符串,格式:"数字+逗号+个数"。
输入
输入一个长度小于等于256,大于0,且只包含数字的字符串
输出
输出该数字及个数做成的字符串,格式:"数字+逗号+个数"。注意逗号为英文半角
样例输入
463618964
样例输出
6,3
提示
地区
西安研究所
public static String statisticOccurMaxCountDigit(String input){
char[] c=input.toCharArray();
Stack<Character> stack=new Stack<Character>();
for(int i=c.length-1;i>=0;i--){
stack.push(c[i]);
}
LinkedHashMap<Character,Integer> lhm=new LinkedHashMap<Character,Integer>();
while(!stack.isEmpty()){
char ch=stack.pop();
if(lhm.containsKey(ch)){
lhm.put(ch, lhm.get(ch)+1);
}else{
lhm.put(ch, new Integer(1));
}
}
List<Map.Entry<Character,Integer>> list=new ArrayList<Map.Entry<Character,Integer>>(lhm.entrySet());
Collections.sort(list, new Comparator<Map.Entry<Character,Integer>>(){
@Override
public int compare(Entry<Character, Integer> o1,
Entry<Character, Integer> o2) {
return o2.getValue()-o1.getValue();//降序
}});
return String.valueOf(list.get(0).getKey())+","+String.valueOf(list.get(0).getValue());
}