Leetcode
Palindrome Number
Given a number x we need to return true or false if the number is a palindrome or not.
Example:
x = 121 => true
x = 2334 => false
This requires some math tricks
You can use the modulo operator to get the last digit of a number
So 121 % 10results in 1
Using Integer Division we can "remove" the last digit of a number
So 121 // 10results in 12
This is all we need to complete this challenge
function isPalindrome(x:number):boolean {
if(x < 0) return false;
let tmp = x;
let reversed = 0
while(tmp > 0){
let lastDigit = tmp % 10
reversed = reversed * 10 + lastDigit
tmp = Math.floor(tmp / 10)
}
return reversed == x;
}Time: O(log k)because we are removing one digit each iteration
Space: O(1)