题目描述
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
AC C++ Solution:
关键是自定义排序器
class Solution {
public:
string PrintMinNumber(vector<int> numbers) {
vector<string> arr;
for(auto s:numbers) {
arr.push_back(to_string(s));
}
sort(arr.begin(),arr.end(), [](string &s1, string &s2) { return s1+s2 < s2+s1; });
string res;
for(auto s:arr)
res += s;
return res;
}
};