题解 | #名字的漂亮度#
名字的漂亮度
http://www.nowcoder.com/practice/02cb8d3597cf416d9f6ae1b9ddc4fde3
就很简单,只需要把出现次数最多的字母,尽可能分配较大的漂亮值就好了。
所以我们
输入后统计每个字母的个数;
对这个字母个数数组排序;
排序之后从后向前遍历,乘以它的
index+1
加总即可。import java.util.*; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); int n = Integer.valueOf(input.nextLine()); while (n-- > 0) { String name = input.nextLine().toLowerCase(); int[] arr = new int[26]; for (char ch : name.toCharArray()) { arr[ch-'a'] ++; } Arrays.sort(arr); int max = 0; for (int i=25; i>=0 && arr[i]>0; --i) { max += (i+1) * arr[i]; } System.out.println(max); } } }