蓝桥杯2020 第七题:单词分析-Java版

方法一:

import java.util.Scanner;

/**
 * @author doiy
 * @date 20210313-2116
 */
public class WordAnalogy {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        char[] ch = scanner.nextLine().toCharArray();
        int[] ans = new int[26];

        // 统计字母出现的次数
        for (int i = 0; i < ch.length; i++) {
            ans[ch[i] - 'a']++;
        }

        char letter = 0;
        int max = Integer.MIN_VALUE;

        for (int i = 0; i < ans.length; i++) {
            if (max < ans[i]) {
                max = ans[i];
                //最大次数
                letter = (char) (i + 'a');
                //转换为字符 (字母)
            }
        }
        System.out.println(letter + "\n" + max);
    }
}

方法二

import java.util.*;
import java.util.stream.Collectors;

/**
 * @author fat-cabbage
 * @date 20210313-19010
 */
public class Test1900 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String strInput = scanner.nextLine();

        ArrayList<Map<String, String>> list = new ArrayList<>();
        for (String s : strInput.split("")) {
            int index = getMapIndex(s, list);
            Map<String, String> map;
            if (index == -1) {
                map = new HashMap<>();
                map.put("string", s);
                map.put("count", String.valueOf(1));
                list.add(map);
            } else {
                map = list.get(index);
                int count = Integer.parseInt(map.get("count"));
                map.put("count", String.valueOf(count + 1));
            }
        }

        list.sort((o1, o2) -> {
            String o1Str = o1.get("string");
            Integer o1Count = Integer.valueOf(o1.get("count"));
            String o2Str = o2.get("string");
            Integer o2Count = Integer.valueOf(o2.get("count"));
            if (!o1Count.equals(o2Count)) {
                return o2Count.compareTo(o1Count);
            } else {
                return o1Str.compareTo(o2Str);
            }
        });
        System.out.println(list);
        System.out.println(list.get(0).get("string"));
    }

    private static int getMapIndex(String string, ArrayList<Map<String, String>> list) {
        System.out.print("string:" + string + ", list:" + list);
        for (int i = 0; i < list.size(); i++) {
            String thisIndexString = list.get(i).get("string");
            if (thisIndexString.equals(string)) {
                System.out.println(", return:" + i);
                return i;
            }
        }
        System.out.println(", return:-1");

        return -1;
    }
}

posted @ 2021-03-13 21:17  Do1y  阅读(435)  评论(3)    收藏  举报