leetcode 179 - Largest Number

https://leetcode.com/problems/largest-number/

Given a list of non-negative integers nums, arrange them such that they form the largest number.

Note: The result may be very large, so you need to return a string instead of an integer.

Example 1:

Input: nums = [10,2]
Output: “210”
Example 2:

Input: nums = [3,30,34,5,9]
Output: “9534330”
Example 3:

Input: nums = [1]
Output: “1”
Example 4:

Input: nums = [10]
Output: “10”

Constraints:

1 <= nums.length <= 100
0 <= nums[i] <= 109

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
class Solution {
public:
string largestNumber(vector<int>& nums) {
auto mycomp = [](int i, int j) {
string s1 = to_string(i);
string s2 = to_string(j);

s1 = s1 + s2;
s2 = s2 + s1;

for (int i = 0; i < (int)s1.size(); i++) {
if (s1[i] > s2[i]) return true;
if (s1[i] < s2[i]) return false;
}

return false;
};

sort(nums.begin(), nums.end(), mycomp);

string result;

for (int num : nums) {
if (num == 0 && result.empty())
continue;
result += to_string(num);
}

return result.empty() ? "0" : result;
}
};