kniost

谁怕,一蓑烟雨任平生

0%

LeetCode 9. Palindrome Number

9. Palindrome Number

Difficulty: Easy

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
class Solution {
public boolean isPalindrome(int x) {
if (x < 0) {
return false;
}
String s = Integer.toString(x);
int i = 0, j = s.length() - 1;
while (i < j) {
if (s.charAt(i++) != s.charAt(j--)) {
return false;
}
}
return true;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public boolean isPalindrome(int x) {
if (x < 0) {
return false;
}
long a = x;
long b = 0;
while (a != 0) {
b = b * 10 + a % 10;
a /= 10;
}
return b == x;
}
}