题解 | 名字的漂亮度

#include <stdio.h>
#include <string.h>

int main() {
    int n, len, sum, num, i, val, whi;
    int cha[26] = {0}, bea[26] = {0};
    char str[10000];
    
    while (scanf("%d", &n) != EOF) {    
        for (i = 0; i < n; i++) 
        {
            memset(cha, 0, sizeof(cha));
            memset(bea, 0, sizeof(bea));// 重置数组
            sum = 0;
            num = 26;
            scanf("%s", str);
            len = strlen(str);     
            for (int j = 0; j < len; j++) 
            {
                cha[str[j] - 'a'] += 1;
            }
            for (int j = 0; j < 26; j++) 
            {
                val = 0;
                for (int k = 0; k < 26; k++) 
                {
                    if(cha[k] > val)
                    {
                        val = cha[k];
                        whi = k;
                    }
                }
                if(val > 0)
                {
                    bea[whi] = num;
                    num -= 1;
                    cha[whi] = 0;
                }
            }
            for (int j = 0; j < len; j++) 
            {
                sum += bea[str[j] - 'a'];
            }            
            printf("%d\n", sum); // 输出当前单词的最大漂亮程度
        }
        printf("\n");
    }
    return 0;
}

全部评论

相关推荐

02-24 17:39
门头沟学院 Java
神哥不得了:神哥来啦~专业技能的话建议不要前面空那么多,八股的话建议先把高频top 50的八股多巩固几遍,千万不要看那些假高频八股。项目的话,建议换两个高质量的项目上去
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
02-26 16:57
明天不下雨了:把第二个项目放第一个去,其他没什么问题,多投,这世道就这样
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务