题解 | #名字的漂亮度#

名字的漂亮度

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

#include <iostream>
#include <map>
#include <string>
#include <vector>

using namespace std;

int main() {
    int n;
    string str;
    vector<string> names;
    cin >> n;
    for (int i = 0; i < n; i++) {
        cin >> str;
        names.push_back(str);
    }
    
    vector<int> beauty;
    for (auto name : names) {
        map<char, int> keyMap;
        for (auto c : name) {
            auto ret = keyMap.insert({c, 1});
            if (!ret.second) {
                ret.first->second++;
            }
        }
        multimap<int, char> valueMap;
        for (auto m : keyMap) {
            valueMap.insert({m.second, m.first});
        }
        int value = 26;
        int sum = 0;
        for (auto it = valueMap.crbegin(); it != valueMap.crend(); ++it) {
            sum += value * it->first;
            value--;
        }
        beauty.push_back(sum);
    }
    
    for (auto b : beauty) {
        cout << b << endl;
    }
    
    return 0;
}
全部评论

相关推荐

2025-12-29 22:36
武汉大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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