题解 | #字符统计#

字符统计

http://www.nowcoder.com/practice/c1f9561de1e240099bdb904765da9ad0

真XX搞不懂 这种题有什么意思? 最后TreeMap转来转去的 恶心死了

import java.util.Scanner;
import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNext()) { // 注意 while 处理多个 case
            HashMap<Character,Integer> map =new HashMap<>();
            TreeMap<Integer,TreeSet<Character>> map2 =new TreeMap<>();
            StringBuilder std= new StringBuilder();
            String a = in.next();
             for(int i=0;i<a.length();i++){
                 char s=a.charAt(i);
                 if(map.containsKey(s)){
                     map.put(s,map.get(s)+1);
                 }else{
                     map.put(s,1);
                 }
             }
            for(Character str:map.keySet()){
                 if(map2.containsKey(map.get(str))){
                    TreeSet<Character> set= map2.get(map.get(str));
                    set.add(str);
                    map2.put(map.get(str),set);
                }else{
                     TreeSet<Character> set= new TreeSet<>();
                     set.add(str);
                     map2.put(map.get(str),set);
                 }
            }
            for(Integer st:map2.keySet()){
                StringBuilder std1= new StringBuilder();
                TreeSet<Character> set=map2.get(st);
                  for(Character str:set){
                  std1.append(str);
            }
                std.append(std1.reverse());
            }
            
              
            System.out.println(std.reverse().toString());
        }
    }
}
全部评论

相关推荐

球球别再泡了:坏,我单9要了14
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务