题解 | 字符串排序
字符串排序
https://www.nowcoder.com/practice/5af18ba2eb45443aa91a11e848aa6723
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int n; cin >> n; vector<string> dic; string str; while(cin >> str) { dic.push_back(str); } sort(dic.begin(), dic.end(), [](const string& a, const string& b){ int n = min(a.size(), b.size()); for(int i = 0; i < n; ++i) { if(a[i] == b[i]) { continue; } else { return a[i] < b[i]; } } return a.size() < b.size(); }); for(string s: dic) { cout << s << endl; } return 0; }
写完lambda表达式之后才发现多此一举了 直接sort(dic.begin(), dic.end())默认就是字典序排列了……