题目:给一个32位的有符号整数x,返回将x中的数字部分反转后的结果。
如果反转后整数超过32位的有符号整数的范围[−2^31, 2^31 − 1],就返回0.
解题思路:在没有辅助栈或数组的帮助下弹出和推入数字,可以使用如下数学方法:
digit=x%10
x/=10
//弹出x的末尾数字digit
//将数字digit推入rev末尾
rev=rev*10+digit
class Solution{
public int reverse(int x){
int rev=0;
while(x!=0){
if(rev<Integer.MIN_VALUE/10||rev>Integer.MAX_VALUE/10){
return 0;
}
int digit=x%10;
x /=10;
rev=rev*10+digit;
}
return rev;
}
}