给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
例如,121 是回文,而 123 不是。
示例 1:
输入:x = 121
输出:true
示例 2:输入:x = -121
输出:false
解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:输入:x = 10
输出:false
解释:从右向左读, 为 01 。因此它不是一个回文数。提示:
-231 <= x <= 231 - 1
学了一种新的解法判断是否是回文数字
假如我们要判断x是否是回文数字,我们可以先将x根据长度
平分成左右两部分,然后在判断是否相等即可
但是考虑到x的长度可能为奇数或者偶数
所以对于奇数的情况我们最后在判断的时候还需要/10
这里所用到的算法就是一个简单求一个数的倒叙
class Solution {
public boolean isPalindrome(int x) {
if(x<0 || (x%10==0 && x!=0)){
return false;
}
int reverNum=0;
while(x>reverNum){
reverNum=reverNum*10 + x%10;
x/=10;
}
return x==reverNum || x==reverNum/10;
}
}