day3
题目
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
不知道题目中是否是不给用long long类型如果可以的话这道题目就很简单了
class Solution {
public:
int reverse(int x) {
long long data = 0;
while(x)
{
data *= 10;
data += x%10;
x/=10;
if(data>INT_MAX || data<INT_MIN)
{
return 0;
}
}
return data;
}
};
如果不行我们直接在最容易溢出的乘10那里进行判定就好
class Solution {
public:
int reverse(int x) {
int data = 0;
while(x)
{
if(data>INT_MAX/10 || data<INT_MIN/10)
{
return 0;
}
data *= 10;
data += x%10;
x/=10;
}
return data;
}
};