判断一个数字是否是回文

最近碰到一个题目,其中一步判断数字是否为回文
由于题目要求是最短时间实现,不要考虑实现本身的效率

1
如果直接去实现,就是比较数字的最高位值和最低位,然后再。。

public boolean isP(int x){
int bit = 1;
int temp = 10;
while(x>temp){bit++;temp*=10;}
if(x==temp)bit++;
// bit为数值位数
int temp1, temp2;
for(int i=0;i<bit/2;i++){
temp = (int)Math.pow(10,i);
temp1 = x%(temp*10)/temp;
temp = (int)Math.pow(10,bit-i-1);
temp2 = x%(temp*10)/temp;
if(temp1==temp2)continue;
else return false;
}
return true;
}

这个方法是数值比较,实现时很容易出错,实现时间比较长,其实效率也不高

2
换一种思路,把数值转为char[],再比较,

public boolean isP(int x){
char[] temp = (""+x).toCharArray();
for(int i=0; i<temp.length/2; i++){
if(temp[i]!=temp[temp.length-i-1])
return false;
}
return true;
}


虽然都很简单,但是仅以此文告诫自己动手写代码之前要三思
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值