INT_MIN在标准头文件limits.h中定义
#define INT_MAX 2147483647
#define INT_MIN (-INT_MAX - 1)
class Solution
{
public:
int reverse(int x)
{
int count = 0;
while (x != 0)
{
if (count < INT_MIN / 10 || count > INT_MAX / 10)
{
return 0;
}
int digit = x % 10;
x /= 10;
count = count * 10 + digit;
}
return count;
}
};
int main()
{
Solution A;
cout << A.reverse(-123) << endl;
return 0;
}
时间复杂度:O(log∣x∣),翻转的次数即 x 十进制的位数。
空间复杂度:O(1)