java题目 HJ45 名字的漂亮度

描述

给出一个名字,该名字有26个字符组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。
每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个不同字母拥有相同的“漂亮度”。字母忽略大小写。

给出多个名字,计算每个名字最大可能的“漂亮度”。
 
本题含有多组数据。
 
数据范围:输入的名字长度满足 1 \le n \le 10000 \1n10000 

 

输入描述:

整数N,后续N个名字

输出描述:

每个名称可能的最大漂亮程度

示例1

输入:
2
zhangsan
lisi
输出:
192
101

 

 

 1 import java.io.*;
 2 import java.util.*;
 3 
 4 public class Main {
 5  public static void main(String[] args) throws IOException {
 6 //      Scanner in = new Scanner(System.in);
 7      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
 8      String s="";
 9      while((s = br.readLine()) != null) {
10          int n = Integer.parseInt(s);
11          for(int i=0;i<n;i++){
12              System.out.println(getScore(br.readLine()));
13          }
14      }
15  }
16     
17  // 计算漂亮度
18     public static int getScore(String name) {
19         int score =0;
20         char[] ch = name.toCharArray();
21         int[] count = new int[26];
22         
23         //转换为小写,对应位置字符出现的次数统计
24         for(int i=0; i<ch.length; i++) {
25             Character.toLowerCase(ch[i]);
26             count[ch[i] - 'a']++; 
27         }
28         
29         Arrays.sort(count); //升序
30         
31         //计算漂亮度
32         for(int i=1; i<=26;i++) {
33             score = score + i*count[i-1];
34         }
35         return score;
36     }
37 }

 

posted @ 2022-03-10 00:26  海漠  阅读(83)  评论(0编辑  收藏  举报