/*
描述
給出一個名字,該名字有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);
}
}
名字的漂亮度
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.