Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.
Example 1:
1 2
**Input:** 121 **Output:** true
Example 2:
1 2 3
**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:
1 2 3
**Input:** 10 **Output:** false **Explanation:** Reads 01 from right to left. Therefore it is not a palindrome.
Follow up:
Coud you solve it without converting the integer to a string?
Solution
Language: Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
classSolution{ publicbooleanisPalindrome(int x){ if (x < 0) { returnfalse; } String s = Integer.toString(x); int i = 0, j = s.length() - 1; while (i < j) { if (s.charAt(i++) != s.charAt(j--)) { returnfalse; } } returntrue; } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14
classSolution{ publicbooleanisPalindrome(int x){ if (x < 0) { returnfalse; } long a = x; long b = 0; while (a != 0) { b = b * 10 + a % 10; a /= 10; } return b == x; } }