mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2025-07-05 16:26:47 +08:00

* feat: Add check number case * style: Fix formatting * fix: Remove number check part * feat: Create isPalindromeIntegerNumber * test: Add minus number case
34 lines
732 B
JavaScript
34 lines
732 B
JavaScript
/**
|
|
* @function isPalindromeIntegerNumber
|
|
* @param { Number } x
|
|
* @returns {boolean} - input integer is palindrome or not
|
|
*
|
|
* time complexity : O(log_10(N))
|
|
* space complexity : O(1)
|
|
*/
|
|
export function isPalindromeIntegerNumber (x) {
|
|
if (typeof x !== 'number') {
|
|
throw new TypeError('Input must be a integer number')
|
|
}
|
|
// check x is integer
|
|
if (!Number.isInteger(x)) {
|
|
return false
|
|
}
|
|
|
|
// if it has '-' it cannot be palindrome
|
|
if (x < 0) return false
|
|
|
|
// make x reverse
|
|
let reversed = 0
|
|
let num = x
|
|
|
|
while (num > 0) {
|
|
const lastDigit = num % 10
|
|
reversed = reversed * 10 + lastDigit
|
|
num = Math.floor(num / 10)
|
|
}
|
|
|
|
// compare origin x and reversed are same
|
|
return x === reversed
|
|
}
|