您的位置:首页 > 其它

LeetCode: Reverse Integer

2016-10-03 23:53 357 查看
题目:

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;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: