/**
* @param {number[]} nums
* @return {string}
*/
var largestNumber = function(nums) {
nums = nums.sort(function(a,b){
var astr = a.toString() + b.toString();
var bstr = b.toString() + a.toString();
if(astr>bstr){
return -1;
}else if(bstr>astr){
return 1;
}else{
return 0;
}
});
var len = nums.length;
if(len===0||len===1){
return nums.toString();
}
var ret = "";
for(var i=0;i<len;i++){
ret += nums[i]+"";
}
i = 0;
len = ret.length-1;
while(ret.charAt(i)=="0" && i<len){
i++;
}
return ret.substring(i);
};
这道题考查的是字符串的排序,而非简单的数字排序。
我采用的比较方法是将两个字符串连接,然后比较连接后字符串的大小。
最后要注意去除开头多余的0。