题解 | #名字的漂亮度#

名字的漂亮度

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

#include <iostream>
using namespace std;
#include<string>
#include<map>
int main() {
    string str;
    int num;
    cin >> num;
    while (cin >> str) {
        map<char, int> cnt;
        int result = 0;
        for (char& i : str) {
            if (cnt.count(i) == 0) {
                cnt.insert(pair<char, int>(i, 1));
            } else {
                cnt[i]++;
            }
        }
        int maxC;
        int maxN = 0;
        int buti = 26;
        for (int i = 0; i < cnt.size(); i++) {
            maxN = 0;
            for (auto& p : cnt) {
                if (p.second > maxN) {
                    maxC = p.first;
                    maxN = p.second;
                }
            }
            result = result + buti*maxN;
            cnt[maxC] = 0;
            buti--;
        }
        cout << result << endl;
    }
}

使用map对字母进行计数即可

华为机试刷题记录 文章被收录于专栏

记录一下手打代码的解题思路方便复习

全部评论

相关推荐

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