9. Palindrome Number
Description
Given an integer x
, return true
if x
is a palindrome, and false
otherwise.
Example 1:
1 2 3
| Input: x = 121 Output: true Explanation: 121 reads as 121 from left to right and from right to left.
|
Example 2:
1 2 3
| Input: x = -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:
1 2 3
| Input: x = 10 Output: false Explanation: Reads 01 from right to left. Therefore it is not a palindrome.
|
Constraints:
Follow up: Could you solve it without converting the integer to a string?
Hints/Notes
Solution
Language: C++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| class Solution { public: bool isPalindrome(int x) { if (x < 0 || (x > 0 && x % 10 == 0)) { return false; } int reversed = 0; while (x > reversed) { int digit = x % 10; x /= 10; reversed = reversed * 10 + digit; } return reversed == x || reversed / 10 == x; } };
|