给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
要求:在int 范围内
思路
- 我们可以一次构建反转整数的一位数字。在这样做的时候,我们可以预先检查向原整数附加另一位数字是否会导致溢出。
class Solution {
public int reverse(int x) {
int temp;
long num=0;
int low=(int)-Math.pow(2,31);//确定范围
int high=(int) Math.pow(2,31)-1;
while(x!=0){
temp=x%10;
if(temp!=0||num!=0){
num=num*10+temp; //反转该数
}
x/=10;
}
if((num>0&&num<=high)||(num>=low&&num<0)){//判断范围
return (int)num;
}
else
return 0;
}
}