美文网首页LeetCode蹂躏集
LeetCode 7.Reverse Integer

LeetCode 7.Reverse Integer

作者: alexsssu | 来源:发表于2018-05-03 17:04 被阅读0次

    题意:给你一个整数,输出它的反转形式,保证符号不变,前端不包含空余的0,特别注意当数字反转后如果溢出32位整形,应该输出0。
    解题思路:定义一个ans为0,对输入的数逐位取出,将ans乘以10之后加上该数,模拟数学进位。每次操作之前需判断ans的绝对值有没有超过最大值INT_MAX=0x7FFFFFFFF除以10,如果超过了则说明下一步操作后将发生溢出,此时返回0;

    class Solution {
    public:
        int reverse(int x) {
            int ans = 0;
            while(x != 0)
            {
                if(abs(ans) > INT_MAX / 10) return 0;
                ans = ans * 10 + x % 10;
                x /= 10;
            }
            return ans;
        }
    };
    

    相关文章

      网友评论

        本文标题:LeetCode 7.Reverse Integer

        本文链接:https://www.haomeiwen.com/subject/eullrftx.html