题解 | #名字的漂亮度#

名字的漂亮度

http://www.nowcoder.com/practice/02cb8d3597cf416d9f6ae1b9ddc4fde3

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;

/**
 * HJ45 名字的漂亮度
 *
 * 描述
 * 给出一个名字,该名字有26个字符组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。
 * 每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个不同字母拥有相同的“漂亮度”。字母忽略大小写。
 *
 * 给出多个名字,计算每个名字最大可能的“漂亮度”。
 *
 * 本题含有多组数据。
 */
public class Main{

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        List<String> list = new ArrayList<>();
        while (scanner.hasNext()) {
            int count = scanner.nextInt();
            for (int i = 0; i < count; i++) {
                list.add(scanner.next());
            }
        }
        for (String name : list) {
            Map<Character,Integer> map = new HashMap<>();
            for (char c : name.toCharArray()) {
                if (map.containsKey(c)) {
                    map.put(c, map.get(c)+1);
                } else {
                    map.put(c, 1);
                }
            }
            //对map根据value降序排序 将map转为list排序
            List<Map.Entry<Character, Integer>> sortedList = new ArrayList<>(map.entrySet());
            Collections.sort(sortedList, new Comparator<Map.Entry<Character, Integer>>() {
                @Override
                public int compare(Map.Entry<Character, Integer> o1, Map.Entry<Character, Integer> o2) {
                    return o2.getValue() - o1.getValue();
                }
            });
            int number = 26;
            int result = 0;
            for (Map.Entry<Character, Integer> entry : sortedList) {
                result += number-- * entry.getValue();
            }
            System.out.println(result);
        }
    }
}
全部评论

相关推荐

05-25 10:45
门头沟学院 Java
Frank_zhan...:没实习一个项目肯定不够,可以再做一个轮子,技术栈再补一个mq,微服务,整体再换个简历模板,暑期尽量再找一个日常实习
无实习如何秋招上岸
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-01 10:56
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务