题解 | #名字的漂亮度#
名字的漂亮度
http://www.nowcoder.com/practice/02cb8d3597cf416d9f6ae1b9ddc4fde3
#include <stdio.h> int main() { int n; char str[4096] = {'0'}; scanf("%d",&n); while((scanf("%s",&str)) != EOF) { //统计各个字母的个数 int len = strlen(str); int hp[26] = {0}; for(int i=0;i<len;i++) { if(str[i] >= 'a' && str[i] <= 'z') { hp[str[i]-'a']++; } else if(str[i] >= 'A' && str[i] <= 'Z') { hp[str[i]-'A']++; } } //冒泡排序 for(int i=0;i<(26-1);i++) { for(int j=0; j<(26-1-i); j++) { if(hp[j] > hp[j+1]) { //交换 int temp = hp[j]; hp[j] = hp[j+1]; hp[j+1] = temp; } } } int k=25; int sum = 0; while(hp[k]>0 && (k>=0)) { sum += hp[k]*(k+1); k--; } printf("%d\n",sum); } }