名字的漂亮度

描述

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

知识点 字符串
运行时间限制 0M
内存限制 0
输入

整数N,后续N个名字

N个字符串,每个表示一个名字

 

输出

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

样例输入 2 zhangsan lisi
样例输出 192 101

 

package com.oj.test;
import java.util.Scanner;
public class Test {
	private static int count(char[] data){
		int[] count = new int[26];
		for(int i = 0;i < data.length; i++){
			int pos = ((int)data[i])%26;
			count[pos] += 1;
		}
		for(int i = 0;i < 25; i++)
			for(int j = 25;j > i;j--)
				if(count[j]>count[j-1]){
					int tmp = count[j];
					count[j] = count[j-1];
					count[j-1] = tmp;
				}
		int sum = 0;
		for(int i = 0;i < count.length; i++)
			sum += (count[i]*(26-i));
		return sum;
	}
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		//String n = in.nextLine();
		
		String str = in.nextLine();
		String[] data = str.split(" ");
		
		int num = Integer.valueOf(data[0]);
		int[] result = new int[num+1];
		for(int i = 1;i <= num; i++){
			result[i] = count(data[i].toCharArray());
			System.out.println(result[i]);
		}
	}
}

  

posted @ 2016-03-11 16:58  再见,少年  Views(407)  Comments(0Edit  收藏  举报