您的位置:首页 > 其它

[LeetCode 解题报告]007.Reverse Integer

2017-05-24 22:02 465 查看
Description:

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321

click to show spoilers.

Note:

The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows.
Int类型的最小值难道不是0x80000000, 居然当res=1时候, 1 <[b]0x80000000 [/b], 真心操蛋。第一段程序WA,换成INT_MIN就过了。想不通!!!想通了,long long 和int类型比较大小。int首先需要转换成long
long ,此时0x80000000赋值给一个long long,故导致错误。


class Solution {
public:
int reverse(int x) {
long long res = 0;
while(x) {
res = res*10 + x%10;
x /= 10;
}
return (res<0x80000000 || res>0x7fffffff) ? 0 : res;
}
};


class Solution {
public:
int reverse(int x) {
long long res = 0;
while(x) {
res = res*10 + x%10;
x /= 10;
}
return (res<INT_MIN || res>INT_MAX) ? 0 : res;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: