题解 | #字符串排序# 基于优先队列

字符串排序

https://www.nowcoder.com/practice/5af18ba2eb45443aa91a11e848aa6723

#include <functional>
#include <iostream>
#include <queue>
#include <vector>
using namespace std;

int main() {
    int num;
    cin >> num;
    priority_queue<string,vector<string>,greater<string>> se;

    for(int i=0; i<num; i++){
        string tmp;
        cin >> tmp;
        se.push(tmp);
    }
    while(!se.empty()){
        cout << se.top() << endl;
        se.pop();
    }
    return 0;
}
// 64 位输出请用 printf("%lld")

由于题目中没有说明元素一定不重复,所以无法用有序集合的方式进行排序。所有要用“优先队列”这种数据结构。

值得注意的是,对于排序这项功能,C++提供的容器已经实现的很好了。大部分都是考虑找一个合适的数据结构去实现即可。

全部评论

相关推荐

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