题解 | 字符统计

#include <algorithm>
#include <cctype>
#include <iostream>
#include <string>
#include <utility>
#include <vector>
using namespace std;

int main() {
    string s;
    getline(cin, s);
    vector<int> v(36, 0);
    for (auto c : s) {
        if (isalpha(c)) {
            v[c - 'a' + 10]++;
        } else {
            v[c - '0']++;
        }
    }
    vector<pair<int, int>> v2;
    for (int i = 0; i < 36; ++i) {
        if (v[i] > 0) v2.emplace_back(i, v[i]);
    }
    //按出现次数排序,若出现次数相同,则按照 ASCII 码由小到大排序。
    sort(v2.begin(), v2.end(), [&](const pair<int, int>& p1,
    const pair<int, int>& p2) {
        if(p1.second == p2.second){
             return p1.first < p2.first;
        }
        return p1.second > p2.second;
    });
    for (auto i : v2) {
        if (i.first > 9) {
            cout << (char)(i.first - 10 + 'a');
        } else {
            cout << i.first;
        }
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-24 13:32
点赞 评论 收藏
分享
07-11 22:27
中南大学 Java
程序员牛肉:学历的话没问题。但是没问题的也就只有学历了。 其实你的整体架构是正确的,博客接着干。但是项目有点过于简单了。从后端的角度上讲,你这也就是刚入门的水平,所以肯定约面试够呛。 如果你要应聘后端岗位,那你第一个项目竟然是仿写操作系统。这个你要面试官咋问你。你一定要记住一点,你简历上写的所有的东西,都是为了证明你有能力胜任当前的岗位,而不是为了证明你自己会什么。 如果你只是浅浅的做几个项目,描述也都是烂大街。技术点也都是各种混水类的配置类需求,那你就不要幻想自己能走多远。一定要保持思考,保持学习。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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