比较规则是:对于任意两个数字 a 和 b,我们需要确定在拼接时 a 应该在 b 前面,还是 b 应该在 a 前面,使得拼接后的整数最大。
所以最后的结果是从大到小已经排序好了直接输出就好了
#include<bits/stdc++.h>usingnamespace std;// 比较两个字符串拼接后的顺序boolcompare(string a, string b){return a + b > b + a;}intmain(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int n;cin >> n;string nums[n];for(int i =0; i < n; i++){cin >> nums[i];}// 根据拼接后的顺序进行排序sort(nums, nums + n, compare);// 拼接字符串string result;for(int i =0; i < n; i++){result += nums[i];}cout << result << endl;return0;}