Skip to Content
TopicsMath


Palindrome Number

  • Build a number starting with the last digit of the input number using modulo and division
  • Compare the reversed number with the input number
/** * @param {number} x * @return {boolean} */ var isPalindrome = function (x) { if (x < 0) { // if negative number return false; } let reverse = 0, value = x; while (value > 0) { const remainder = value % 10; // get the last digit reverse = remainder + reverse * 10; // build the reversed number value = Math.floor(value / 10); // remove the last digit } return reverse === x; };
Complexity
  • Time: O(digits)
  • Space: O(1)


Reverse Integer

  • Reverse the number without sign and check for overflow
  • Use the sign to return the reversed number with the correct sign
/** * @param {number} x * @return {number} */ var reverse = function (x) { const limit = Math.pow(2, 31); const isPositive = x > 0; let value = Math.abs(x); // remove the sign let reverse = 0; while (value > 0) { const remainder = value % 10; value = Math.floor(value / 10); reverse = remainder + 10 * reverse; } // check for overflow if (isPositive && reverse >= limit) { return 0; } else if (!isPositive && reverse > limit) { return 0; } // return the reversed number with the correct sign return isPositive ? reverse : -reverse; };
Complexity
  • Time: O(digits)
  • Space: O(1)
Last updated on