美文网首页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