9. Palindrome Number

Easy

Question

Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.

Example 1:

Input: 121
Output: true

Example 2:

Input: -121
Output: false
Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.

Example 3:

Input: 10
Output: false
Explanation: Reads 01 from right to left. Therefore it is not a palindrome.

Follow up:

Could you solve it without converting the integer to a string?

Revert half of the number

For example, input is 1221, if we revert last part of the number 1221 from 21 to 12, and compare with first half.

  • When x <= reversed number, we reach the half

  • Two cases:

    • "1221" pattern, x == rev.

    • "121" pattern, x == rev / 10, get rid of the middle digit

  • Time complexity: O(log_10(n))

  • Space complexity: O(1)

Code

Last updated

Was this helpful?