题解 | #名字的漂亮度#

名字的漂亮度

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

#include <iostream>
#include <vector>
#include <string>
#include <map>
#include <set>
#include <algorithm> // 包含 std::sort 和 std::greater

using namespace std;

int main() {
    int N;
    cin >> N;
    vector<string> str; //存放输入的string
    for (int i = 0; i < N; i++) {
        string s;
        cin >> s;
        str.push_back(s);
    }
    for (auto it = str.begin(); it != str.end(); it++) {
        // cout << "it = " << *it << " ";
        map<char, int> fre; //记录string中每个字母出现次数
        for (auto it1 = (*it).begin(); it1 != (*it).end(); it1++) {
            fre[*it1] = 0;
        }

        for (auto it1 = (*it).begin(); it1 != (*it).end(); it1++) {
            if (fre.count(*it1)) {
                fre[*it1]++;
            }

        }
        vector<int> se;//用于存放每个字母出现的次数;
        for (auto it = fre.begin(); it != fre.end(); it++) {
            se.push_back((*it).second);
        }
        // 使用 std::sort 按倒序对 vector 进行排序
        sort(se.begin(), se.end(), std::greater<int>());
        int max = 0; //最大的"漂亮度"
        int ori_beauty = 26; //单个英文字母最大"漂亮度"
        for (auto it = se.begin(); it != se.end(); it++) {
            max += (*it) * ori_beauty;
            --ori_beauty;
        }
        cout << max << endl;
    }


    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

黑皮白袜臭脚体育生:还是喜欢你劝退测开时候桀骜不驯的样子,麻烦恢复一下
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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