题解 | #字符串排序# 基于优先队列
字符串排序
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++提供的容器已经实现的很好了。大部分都是考虑找一个合适的数据结构去实现即可。