把数组拍成最小的数
1、题目要求
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
2、我的代码
class Solution {
public:
string PrintMinNumber(vector<int> numbers) {
if(numbers.empty()) return string();
sort(numbers.begin(), numbers.end(), [](int a, int b){
string sa = to_string(a);
string sb = to_string(b);
return sa+sb < sb+sa;
});
string res;
for_each(numbers.begin(), numbers.end(), [&](int m){
res += to_string(m);
});
return res;
}
};