zoukankan      html  css  js  c++  java
  • 笔试题:输入一个字符串,输出出现次数最多的前2个字符及出现次数

    参考答案: 

    package com.qzcsbj;
    
    import java.util.*;
    
    public class Test {
        public static void main(String[] args) {
            System.out.print("请输入一个字符串:");
            Scanner sc = new Scanner(System.in);
            String str = sc.nextLine();
    
            Map<String, Integer> map = new HashMap<String, Integer>();
    
            for (int i = 0; i < str.length(); i++) {
                String c = str.charAt(i) + "";
                map.put(c, map.containsKey(c) ? map.get(c) + 1 : 1);
            }
    
    
            Set<Map.Entry<String, Integer>> entries = map.entrySet();
            ArrayList<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(entries);
            Collections.sort(list,new Comparator<Map.Entry<String, Integer>>() {  // 匿名内部类
                @Override
                public int compare(Map.Entry<String, Integer> obj1,
                                   Map.Entry<String, Integer> obj2) {
                    if(obj1.getValue() > obj2.getValue()){
                        return -1;
                    }else if(obj1.getValue() < obj2.getValue()){
                        return 1;
                    }
                    return 0;
                }
            });
    
            int len = list.size();
            if(len<2){
                System.out.println("字符串中只出现了" + len + "种字符");
                for(int i=0;i<len;i++){
                    Map.Entry<String, Integer> entry = list.get(i);
                    if (" ".equals(entry.getKey())){
                        System.out.println("空格="+entry.getValue());
                    }else {
                        System.out.println(entry.getKey()+"="+entry.getValue());
                    }
                }
            }
            else {
                System.out.println("出现次数最多的前2:");
                for(int i=0;i<2;i++){
                    Map.Entry<String, Integer> entry = list.get(i);
                    if (" ".equals(entry.getKey())){
                        System.out.println("空格="+entry.getValue());
                    }else {
                        System.out.println(entry.getKey()+"="+entry.getValue());
                    }
                }
            }
    
        }
    }
    

      

  • 相关阅读:
    埃及分数问题(JLNUOJ 2372)
    哈夫曼树的简单实现(JLOJ2370)
    4 Values whose Sum is 0 UVA 1152
    UVA 1600 Patrol Robot
    UVA122 二叉树的层次遍历
    51nod(1174 区间中最大的数)(ST表模板题)
    51nod(1089 最长回文子串 V2)(hash 加二分)
    中国剩余定理(费马小定理求逆元)
    hdu1005 矩阵快速幂
    八连通(vector动态数组法)
  • 原文地址:https://www.cnblogs.com/uncleyong/p/13927120.html
Copyright © 2011-2022 走看看