[LeetCode 解题报告]007.Reverse Integer

来源:互联网 发布:清洁舱单电子数据 编辑:程序博客网 时间:2024/05/16 06:50

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 <0x80000000 , 真心操蛋。第一段程序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;    }};


原创粉丝点击