使用map统计出现次数,vector和sort实现按照出现次数排序

名字的漂亮度

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

#include <bits/stdc++.h>
using namespace std;
int beautiful(string s) {
    map<char, int> cmap;
    vector<pair<char, int>> pvec;  
    for (char c : s) {
        ++cmap[c];
    }
    for (auto p : cmap) {
        pvec.push_back(p);
    }
    sort(pvec.begin(), pvec.end(), [] (pair<char, int> x, pair<char, int> y) {return x.second > y.second;});
    int ret =  0;
    int sig = 26;
    for (int i = 0; i < pvec.size(); ++i) {
        ret += pvec[i].second * sig;
        --sig;
    }
    return ret;
}
int main() {
    int n;
    cin >> n;
    for (int i = 0; i < n; ++i) {
        string s;
        cin >> s;
        cout << beautiful(s) << endl;;
    }
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务