题目:给出一个32为的有符号整数,你需要将这个整数中的每位上的数字进行反转,如果反转后的整数溢出那么就返回0.
题解:
颇为简单的一题
class solution
{
private:
public:
int reverse(int obj)
{
int res = 0;
while (obj)
{
res =res * 10 + (obj % 10);
obj=obj / 10;
//32位有符号整数的最大值是2147483647
if (res > INT_MAX / 10 || res == INT_MAX / 10 && obj % 10 > 7)
return 0;
//32位有符号整数的最小值是-2147483648
if (res < INT_MIN / 10 || res == INT_MIN / 10 && obj % 10 < -8)
return 0;
}
return res;
}
};