-
Notifications
You must be signed in to change notification settings - Fork 122
Expand file tree
/
Copy pathPalindromeNumber.java
More file actions
30 lines (30 loc) · 884 Bytes
/
PalindromeNumber.java
File metadata and controls
30 lines (30 loc) · 884 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/**
* Determine whether an integer is a palindrome. Do this without extra space.
*
* <p>Some hints: Could negative integers be palindromes? (ie, -1)
*
* <p>If you are thinking of converting the integer to string, note the restriction of using extra
* space.
*
* <p>You could also try reversing an integer. However, if you have solved the problem "Reverse
* Integer", you know that the reversed integer might overflow. How would you handle such case?
*
* <p>There is a more generic way of solving this problem.
*/
public class PalindromeNumber {
public boolean isPalindrome(int x) {
if (x < 0) return false;
int k = 1;
while (x / k >= 10) {
k *= 10;
}
while (x >= 10) {
int left = x / k;
int right = x - x / 10 * 10;
if (left != right) return false;
x = (x - x / k * k) / 10;
k /= 100;
}
return true;
}
}