华为机试-名字的漂亮度(中等)

名字的漂亮度

http://www.nowcoder.com/questionTerminal/02cb8d3597cf416d9f6ae1b9ddc4fde3

题目描述

给出一个名字,该名字有26个字符串组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。
每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个字母拥有相同的“漂亮度”。字母忽略大小写。
给出多个名字,计算每个名字最大可能的“漂亮度”。

题目没看懂,看了下讨论里@谢小橙
图片说明
本来想用哈希表存储字母和相应次数,为了按次数从大到小排列,再把次数放进vector里;
但是一想既然只用知道字母出现次数的排序,干脆用一个数组就可以,26个坑分别存放a-z的次数
然后从大到小排序,然后累加。

static bool cmp( int a, int b){
    return a>b?true:false;
}
int main(){
    int a;
    string s;
    while(cin>>a){
        while(a--){
            cin>>s;
            vector<int> v(26);
            for(auto i:s)
                v[i-'a']++;
            sort(v.begin(),v.end(),cmp);
            int k=26,ans=0;
            for(auto i:v){
                if(!i) break;
                ans+=(k--)*i;
            }
            cout<<ans<<endl;
        }
    }
}
全部评论
我也是没看懂题目。我还以为是a-z代表从1-26的漂亮度呢
点赞 回复 分享
发布于 2022-01-24 11:34

相关推荐

2025-12-24 13:37
已编辑
浙江农林大学 C++
Eryi_是不是名字...:金牌哥,你这要是考研C9进复试线乱杀啊。可以试试字节腾讯华子,我感觉投华子实习概率很大啊
点赞 评论 收藏
分享
2025-12-15 11:27
门头沟学院 Java
哇哇的菜鸡oc:所有人不要理会,就好了,后面他就知道怎么回事了,只能说有的时候市场都是被宰的人搞坏的
点赞 评论 收藏
分享
评论
4
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务