Description:
Example1: x = 123, return 321
Example2: x = -123, return -321
Solution:
public class Solution {
public int reverse(int x) {
long tmp = Math.abs((long )x);
long ret=0;
int max=Integer.MAX_VALUE;
while(tmp>0){
ret=ret*10+tmp%10;
if(ret>max){
return 0;
}
tmp=tmp/10;
}
if(x>0){
return (int)ret;
}
else{
return (int)-ret;
}
}
}
Idel:不管输入的x正数还是负数,均取绝对值当正数处理;利用%和/运算分离x各个位数;需要判断和是否导致int溢出;根据x的正负情况决定返回值的正负情况
summary:1.Math.abs()取绝对值;2.Integer.MAX_VALUE为int最大值