给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
示例 1:
输入:x = 121
输出:true
方法一
解题思路
利用整数反转的思路,将整数反转,如果是回文数,那么反转之后的数等于原来的数。负数一定不是回文数,直接返回false
。
public boolean isPalindrome(int x) {
if (x < 0) {
return false;
}
int t = x;
int res = 0;
while (x != 0) {
res = res * 10 + x % 10;
x /= 10;
}
return res == t;
}
方法二
解题思路
将整数逐位拆分放入数组,然后定义两个变量,一个从前往后,另一个从后往前,通过遍历数组来比较是否是回文数。
public boolean isPalindrome(int x) {
if (x < 0) {
return false;
}
int[] temp = new int[10];
int i = 0;
while(x != 0){
temp[i] = x % 10;
x /= 10;
i++;
}
int number = i;
for (int j = 0; j < number/2 ; j++) {
if (temp[j] != temp[--i]) {
return false;
}
}
return true;
}