ECNU 69 完美度

ECNU 69 完美度

链接

https://acm.ecnu.edu.cn/problem/69

题目

单点时限: 1.0 sec

内存限制: 256 MB

约翰认为字符串的完美度等于它里面所有字母的完美度之和。每个字母的完美度可以由你来分配,不同字母的完美度不同,分别对应一个 到 之间的整数。约翰不在乎字母大小写。(也就是说对应的大小写字母完美度相同)

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

输入格式
输入一个长度不超过 的字符串。字符串由英文字母构成。

对于 的数据,字符串长度不超过 。

输出格式
输出字符串的最大可能的完美度。

样例
input
daD
output
77
提示
daD,你可以将 26 分配给 d,25 分配给 a,这样整个字符串完美度为 77。

思路

直接全部转为小写字母,然后找字母数量,字母多的分配26,少的分配1,一个乘法就行。

代码

  public static void fun() {
    Scanner sc = new Scanner(System.in);
    String str = sc.next();
    str = str.toLowerCase();
    StringBuffer sb = new StringBuffer(str);
    int[] num = new int[27];
    for (int i = 0; i < str.length(); i++) {
      char t = sb.charAt(i);
      num[t - 'a']++;
    }
    Arrays.sort(num);
    int count = 0;
    for (int i = 0; i < 27; i++) {
      count += num[i] * i;
    }
    System.out.println(count);
  }

原文地址:https://www.cnblogs.com/blogxjc/p/14431475.html