# Palindrome Number solution using TypeScript

Below is my TypeScript solution to the LeetCode "Palindrome Number" question.

Time Complexity: Because each iteration divides the input by 10, the time complexity is O(log10(n)) where n is the inputted value.

Space Complexity: The following approach uses a constant amount of space, making the space complexity O(1).

``````/**
* Determine if a given number is a palindrome.
* A number is a palindrome when it reads the same
* forward as it does backward.
*
* Time Complexity: O(log10(n))
* Space Complexity: O(1)
*
* Input: 12321
* Output: true
*/
function isPalindrome(x: number): boolean {
if (x < 0) {
return false;
}
let digits = Math.floor(Math.log10(x) + 1);
while (digits > 1) {
// create a mask: 123 = 100, 1234 = 1000
const mask = Math.pow(10, digits - 1);

// get the first digit: 1234 = 1
const first = Math.floor(x / mask);

// get the last digit: 1234 = 4
const last = Math.floor(x % 10);

if (first !== last) {
return false;
}

// trim first digit: 1234 = 234