Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.
- 字符串解法
public class PalindromeNumberSolution {
public boolean isPalindrome(int x) {
String str = String.valueOf(x);
int len = str.length();
int halfLen = len/2;
for (int i = 0; i < halfLen; i++) {
if (str.codePointAt(i)!=str.codePointAt(len-i-1)){
return false;
}
}
return true;
}
Follow up:
Coud you solve it without converting the integer to a string?
- 不转成string的解法
public class PalindromeNumberSolution {
public boolean isPalindrome(int x) {
//负数,以零结尾的非零数都不是回文数
if (x < 0 || (x % 10 == 0 && x != 0)) {
return false;
}
int newNum = 0;
while (x > newNum) {
newNum = newNum * 10 + x % 10;
x /= 10;
}
return x == newNum || x == newNum / 10;//最中间的数可以忽略
}
}