题解 | #字符统计#

字符统计

https://www.nowcoder.com/practice/c1f9561de1e240099bdb904765da9ad0

#include <iostream>
#include <vector>
#include <string>
#include <map>
#include <algorithm>
using namespace std;
bool compare(const pair<char, int> &a, const pair<char, int>& b)
{
    if (a.second != b.second) {
        return a.second > b.second; // 按照出现次数降序排列
    } 
    else 
    {
        return a.first < b.first; // 相同次数按照 char 的 ASCII 码升序排列
    }
}
int main() {
    string str;
    map<char, int> map;
    cin >> str;
    for (auto x : str)
    {
        map[x]++;
    }
    vector<pair<char, int> > arr(map.begin(), map.end());
    sort(arr.begin(), arr.end(), compare);
    for (auto &p : arr)
    {
        cout << p.first;
    }
    return 0;
}

全部评论

相关推荐

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