LeetCode蹂躏集

LeetCode 7.Reverse Integer

2018-05-03  本文已影响0人  alexsssu

题意:给你一个整数,输出它的反转形式,保证符号不变,前端不包含空余的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;
    }
};
上一篇 下一篇

猜你喜欢

热点阅读