• 厐果英雄会之字符串的完美度


    原题地址如下:http://hero.pongo.cn/Question/Details?ID=71&ExamID=69

    题目大意:

    我们要给每个字母配一个1-26之间的整数,具体怎么分配由你决定,但不同字母的完美度不同,

    而一个字符串的完美度等于它里面所有字母的完美度之和,且不在乎字母大小写,也就是说字母F和f的完美度是一样的。


    现在给定一个字符串,输出它的最大可能的完美度。

    例如:dad,你可以将26分配给d,25分配给a,这样整个字符串最大可能的完美度为77。


    函数头部

    C

    int perfect(const char *s);

    C++

    int perfect(const string &s);

    java

    public static int perfect(String s);

    我的代码如下:

     1 public class Test05 {
     2     private static HashMap<Character, Integer> map = new HashMap<Character, Integer>();
     3 
     4     public static void main(String[] args) {
     5         System.out
     6                 .println(perfect("aaAddcf"));
     7     }
     8 
     9     public static int perfect(String s) {
    10         char[] chars = s.toLowerCase().toCharArray();
    11         for (int i = 0; i < chars.length; i++) {
    12             if (map.containsKey(chars[i])) {
    13                 int value = map.get(chars[i]);
    14                 map.put(chars[i], value + 1);
    15             } else {
    16                 map.put(chars[i], 1);
    17             }
    18         }
    19         Collection<Integer> list = map.values();
    20         System.out.println(list);
    21         Object[] arrs = list.toArray();
    22         Arrays.sort(arrs);
    23         int key = 26;
    24         int result = 0;
    25         for (int i = arrs.length - 1; i >= 0; i--) {
    26             result += key * (Integer) arrs[i];
    27             key--;
    28         }
    29         map.clear();
    30         return result;
    31     }
    32 
    33 }

    比较丢人的是前后提交了九次才通过,刚开始不知道问题在哪儿,自己电脑上运行没问题,已提交就是测试不通过,后来发现,是因为它后台的测试用例有两个,而我刚开始的代码里面没有第29行清空map的代码,导致第二次测试的时候结果加载了第一次测试的结果之上,当然不对了,而我自己只是测了一遍而已,当然找不到错了。

  • 相关阅读:
    ASP.NET实现文件下载的功能
    优先队列的使用
    关于CSS设置样式的一点建议
    ASP.NET后台弹出消息的方法
    创建漂亮的 CSS 按钮的 10 个代码片段(转载)
    2020高考游记
    最后的OI(HAOI2020游记)
    2020 2 2 20 20
    祭最后的亡魂
    一个感人至深的故事
  • 原文地址:https://www.cnblogs.com/huashui/p/3218939.html
Copyright © 2020-2023  润新知