2025-08-18 10:34:09 +0000 UTC
Largest Number After Digit Swaps by Parity
Categories:
Links
Code
class Solution:
def largestInteger(self, num: int) -> int:
odd, even, res = [], [], []
while num > 0:
dig = num % 10
if dig % 2 == 0:
even.append(dig)
res.append(True)
else:
odd.append(dig)
res.append(False)
num //= 10
odd.sort(reverse=True)
even.sort(reverse=True)
res.reverse()
length = len(res)
num = 0
for i in reversed(range(length)):
if res[i]:
num += even.pop() * (10 ** (length - i - 1))
else:
num += odd.pop() * (10 ** (length - i - 1))
return num