/*
描述
给出一个名字,该名字有26个字符串组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。
每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个字母拥有相同的“漂亮度”。字母忽略大小写。
给出多个名字,计算每个名字最大可能的“漂亮度”。
知识点 字符串
运行时间限制 0M
内存限制 0
输入
整数N,后续N个名字
N个字符串,每个表示一个名字
输出
每个名称可能的最大漂亮程度
样例输入 2 zhangsan lisi
样例输出 192 101
*/
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String args[])
{
Scanner sca = new Scanner(System.in);
String num = sca.next();
if(!num.matches("[0-9]+"))
{
sca.close();
return;
}
int n = Integer.parseInt(num);
String[] str1 = new String[n];
for(int i = 0;i < n ;i++)
{
str1[i] = sca.next();
if(!str1[i].matches("[a-zA-Z]+"))
{
sca.close();
return;
}
char[] str = str1[i].toCharArray();
getNumber(str);
}
sca.close();
}
static void getNumber(char[] name)
{
int[] temp = new int[26];
int number = 0;
for(int i = 0;i < name.length;i++)
{
if(name[i] > 96)
temp[name[i]-97]++;
else
temp[name[i]-65]++;
}
Arrays.sort(temp);
for(int i = 26;i > 0; i--)
{
number += temp[i-1]*i;
}
System.out.println(number);
}
}
名字的漂亮度
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.