首先:排除负数整体
循环{
1.设法得到input最左端数值
2.设法得到input最右端数值
3.对比
4.设法去除已经对比过的两个值}
下面是代码:
class Solution {
public boolean isPalindrome(int x) {
//根据提示,发现负数不可能是回形数
if(x < 0) return false;
//设置div参数,为了得到input最左端的数值
int div = 1;
while(x / div >= 10){
div *= 10;
}
while(x != 0){
int left = x / div;
//得到input最右端的数值
int right = x % 10;
//判断最左端和最右端是不是相等
if(left != right) return false;
//去掉已经判断过的两个值
x = (x % div) / 10;
//相应div参数减去两位
div /= 100;
}
return true;
}
}
本文介绍了一种通过编程方法判断一个整数是否为回文数的有效算法。该算法首先排除所有负数,然后通过不断获取并比较输入整数的最左侧和最右侧数字来实现。文章提供了一个具体的Java代码实现示例。
1599

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



