給出一個字符串,該字符串僅由小寫字母組成,定義這個字符串的“漂亮度”是其所有字母“漂亮度”的總和。
每個字母都有一個“漂亮度”,范圍在1到26之間。沒有任何兩個不同字母擁有相同的“漂亮度”。字母忽略大小寫。給出多個字符串,計算每個字符串最大可能的“漂亮度”。
本題含有多組數據。數據范圍:輸入的名字長度滿足1≤n≤10000
輸入描述:第一行一個整數N,接下來N行每行一個字符串
輸出描述:每個字符串可能的最大漂亮程度
輸入:2
zhangsan
lisi
輸出:
192
101
說明:對于樣例lisi,讓i的漂亮度為26,l的漂亮度為25,s的漂亮度為24,lisi的漂亮度為25+26+24+26=101.
#include<stdio.h>
#include<string.h>int cmp(int *a, int *b)
{return *b - *a;
}int main()
{int n;char str[10001];scanf("%d", &n);for(int i=0; i<n; i++){scanf("%s", str);int a[26] = {0};int len = strlen(str);for(int j=0; j<len; j++){a[str[j] - 'a']++;}qsort(a, 26, sizeof(int), cmp);int sum = 0, max = 26;for(int k=0; k<26; k++){if(a[k]){sum += max * a[k];max--;}}printf("%d\n", sum);}return 0;
}