直接给每个数字前面添0到相同长度,再直接比较字符串,简单粗暴_(:з」∠)_
#include <iostream> #include <string> #include <vector> #include <algorithm> using namespace std; int main() { int n; while (cin >> n) { vector<string> nums; for (int i = 0; i < n; i++) { string input; cin >> input; while (input.size() < 1005) { input.insert(input.begin(), '0'); } nums.push_back(input); } sort(nums.begin(), nums.end()); for (int i = 0; i < n; i++) { int pos = nums[i].find_first_not_of('0'); string output = nums[i].substr(pos); cout << output << endl; } } }