Largest Number After Digit Swaps by Parity LeetCode solution in JavaScript

1
/**
2
* @param {number} num
3
* @return {number}
4
*/
5
var largestInteger = function (num) {
6
var nums = num.toString().split(""); //splitting the numbers into an array
7
var odd = []; //helps keep a track of odd numbers
8
var even = []; //helps keep a track of even numbers
9
for (var i = 0; i < nums.length; i++) {
10
if (nums[i] % 2 === 0)
11
//pushing even numbers to even array
12
even.push(nums[i]); //pushing odd numbers to odd array
13
else odd.push(nums[i]);
14
}
15
odd.sort((a, b) => a - b); //sorting the arrays in ascending order
16
even.sort((a, b) => a - b);
17
var ans = [];
18
for (var i = 0; i < nums.length; i++) {
19
if (nums[i] % 2 === 0) {
20
//replacing even with even
21
ans.push(even[even.length - 1]); //pushing the greatest even number in the ans
22
even.pop(); //popping the used number
23
} else {
24
//replacing odd with odd
25
ans.push(odd[odd.length - 1]); //pushing the greatest odd number in the ans
26
odd.pop(); //popping the used number
27
}
28
}
29
var ans2 = parseInt(ans.join("")); //converting the ans array into an int number
30
return ans2;
31
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0