(x)
| 7 | * space complexity : O(1) |
| 8 | */ |
| 9 | export function isPalindromeIntegerNumber(x) { |
| 10 | if (typeof x !== 'number') { |
| 11 | throw new TypeError('Input must be a integer number') |
| 12 | } |
| 13 | // check x is integer |
| 14 | if (!Number.isInteger(x)) { |
| 15 | return false |
| 16 | } |
| 17 | |
| 18 | // if it has '-' it cannot be palindrome |
| 19 | if (x < 0) return false |
| 20 | |
| 21 | // make x reverse |
| 22 | let reversed = 0 |
| 23 | let num = x |
| 24 | |
| 25 | while (num > 0) { |
| 26 | const lastDigit = num % 10 |
| 27 | reversed = reversed * 10 + lastDigit |
| 28 | num = Math.floor(num / 10) |
| 29 | } |
| 30 | |
| 31 | // compare origin x and reversed are same |
| 32 | return x === reversed |
| 33 | } |
no outgoing calls
no test coverage detected