给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
示例 1:
输入:x = 121 输出:true
示例 2:
输入:x = -121 输出:false 解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入:x = 10 输出:false 解释:从右向左读, 为 01 。因此它不是一个回文数。
示例 4:
输入:x = -101 输出:false
解题思路:
既然是对整数是否为回文数的判断,那么可将整数划分为三类:负整数、0、正整数。
1.负数一定不为回文数,因为反转后负号提到了最后,明显与原数不一致;
2.0一定为回文数,0反转后依然为0;
3.正整数有可能为回文数,但是需要对该数进行反转,若反转后的数与原数相等,那么就为回文数(整数反转的例子见下篇)
class Solution {
public boolean isPalindrome(int x) {
//如果输入的数为负数则不会为回文数
if(x<0) return false;
//如果为0,返回true
if(x==0) return true;
//如果输入的数为正数,将其反转后进行判断
long n=0;
int start=x;
while( x != 0){
n=n*10+x%10;
x=x/10;
}
return start==n;
}
}
该博客讨论了如何判断一个整数是否为回文数。通过检查输入数的正序和倒序是否相同,可以确定其是否为回文。对于负数,直接返回false,0返回true,正数则通过反转后再比较。提供的Java代码示例中,使用了一个简单的算法将整数反转并进行比较。
1276

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



