Reverse digits of an integer .
/** 题目分析:本题要求输入一个整型数x,然后将高低位置换。讲通俗一点就是对输入的x进行反转操作。 */
Example1: x = 123, return 321
Example2: x = -123, return -321
/** 代码思路:通过对输入的x不断进行以10为除数的取余和整除操作,取余操作目的是提取x最低位,接着使用整除来过滤x最低位;每次提取出来x最低位之后,将新整型数temp的数位左移一位,再将提取的x最低位数放在temp个位;对x进行若干次取余整除操作之后,当x等于0时,此时的temp就是x的反转数,即我们需要return的值;
*/
int reverse(int x) {
int temp=0;
while(0 != x){
if (temp > INT_MAX/10 || temp < INT_MIN/10) //若变量temp即将超过int范围,那么返回0;
return 0;
}
temp = temp*10 + x % 10; //将变量左移一个整数位,取余结果放在个位;
x = x / 10; //类似于将x右移一个整数位,原来的个位舍弃,十位变个位;
}
return temp;
}
// LeetCode运行时间:13ms±3ms;
/** PS:代码中出现的
INT_MAX =2147483647
INT_MIN =-2147483648;
*/