题解 | #名字的漂亮度#

名字的漂亮度

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);
    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务