Back to all solutions
#2384 - Largest Palindromic Number
Problem Description
You are given a string num consisting of digits only.
Return the largest palindromic integer (in the form of a string) that can be formed using digits taken from num. It should not contain leading zeroes.
Notes:
- You do not need to use all the digits of num, but you must use at least one digit.
- The digits can be reordered.
Solution
/**
* @param {string} num
* @return {string}
*/
var largestPalindromic = function(num) {
const digitCount = new Array(10).fill(0);
for (const digit of num) {
digitCount[parseInt(digit, 10)]++;
}
let leftHalf = '';
let middle = '';
for (let digit = 9; digit >= 0; digit--) {
const count = digitCount[digit];
const pairs = Math.floor(count / 2);
if (digit === 0 && leftHalf === '') {
continue;
}
leftHalf += digit.toString().repeat(pairs);
if (count % 2 === 1 && middle === '') {
middle = digit.toString();
}
}
if (leftHalf === '' && middle === '') {
return '0';
}
const rightHalf = leftHalf.split('').reverse().join('');
return leftHalf + middle + rightHalf;
};