题目:
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
这道题很简单,从低位向高位取整数每位上的数字,并把初始化为0的result值乘10加上这个取得的数字,时间复杂度为o(logn)。但是这里要特别注意整数范围的问题,因为一个整数的倒序很可能会溢出。代码:
class Solution {
public:
int reverse(int x)
{
const int max=0x7fffffff; //int最大值
const int min=0x80000000; //int最小值
//不能直接声明为int类型,否则溢出时会出错
long long result=0;
while(x!=0)
{
int temp=x%10;
result=result*10+temp;
if(result>max||result<min) //溢出
{
if(result>0) return max;
else return min;
}
x=x/10;
}
return result;
}
};