题解 | 名字的漂亮度

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

全部评论

相关推荐

今天 19:01
华中科技大学 C++
点赞 评论 收藏
分享
Beeee0927:正确的建议
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务