判断一个数是否是回文数。由于负数有符号,所以所有负数都不是回文数。由于最高位不为0,如果整数x是10的倍数(不为零),则整数x一定不是回文数。
这道题参考第8题将整数反转的方法,将整数x的后半部分反转同x的前半部分比较,如果相同或者后面部分正好是前面部分的10倍时,这个数是回文数,其它则不是回文数。
class Solution {
public boolean isPalindrome(int x) {
if ( x < 0 || ( x % 10 == 0 && x != 0 )) return false;
int rev = 0;
while ( x > rev ){
rev = rev * 10 + x % 10;
x = x / 10;
}
if (x == rev || x == rev / 10) return true;
else return false;
}
}
判断回文数算法
本文介绍了一种判断整数是否为回文数的有效算法。通过反转整数的后半部分并与前半部分进行对比,可以高效地判断一个正整数是否为回文数。文章还特别指出负数和以0结尾的正数(除了0本身)不可能是回文数。
2087

被折叠的 条评论
为什么被折叠?



