Reverse Integer
2015-03-06 09:46 笨笨的老兔子 阅读(136) 评论(0) 编辑 收藏 举报将一个整数颠倒
基本思路:用一个标志位记录整数的符号,如果是负数转换成整数后颠倒,然后再乘以-1。本题主要考虑的是溢出。
注意点:
- 负数到正数的过程中存在溢出
- 数字颠倒后存在溢出
class Solution {
public:
int reverse(int x) {
long long res = 0;
long long num = 0;
int flag = 1;
if (x < 0)
{
num = num-x;//此处不能写作0-x或者-x,num-x这个表达式实际上存在一个隐式转换
flag = -1;
}
else
{
num = x;
}
while (num)
{
res = res*10 + num % 10;
num = num / 10;
}
if (res > INT_MAX)
{
return 0;
}
return res*flag;
}
};