Given a list of non negative integers, arrange them such that they form the largest number.
For example, given [3, 30, 34, 5, 9]
, the largest formed number is 9534330
.
Note: The result may be very large, so you need to return a string instead of an integer.
是一个很简单的题,但是用来排序的这个比较算法一直忘记,记录一下备用
还有就是关于0的test case的特殊处理,这次是自己想起来了!
class Solution {
public:
static bool cmp(int x, int y){
string s1 = to_string(x);
string s2 = to_string(y);
return s1 + s2 > s2 + s1;
}
string largestNumber(vector<int>& nums) {
sort(nums.begin(), nums.end(), cmp);
string result = "";
for(int i = 0; i < nums.size(); i++){
result += to_string(nums[i]);
}
if(result[0] == '0') return "0";
else return result;
}
};