输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
C++代码:
class Solution {
public:
string minimunNumber(vector<int>& nums) {
string ret;
sort(nums.begin(), nums.end(),
[](const int &m, const int&n){
return to_string(m) + to_string(n)<to_string(n) + to_string(m); }); // lambda expression
for (int i = 0; i<nums.size(); ++i){
ret += to_string(nums[i]);
}
if (ret[0] == '0') //for the case nums are all zeros
return "0";
return ret;
}
};