给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
int reverse(int x){
int flag = 0;
if (x == 0) {
return 0;
}
else if (x == -2147483648) return 0;
else if (x < 0) {
x = -x;
flag = 1;
}
int length = 0, temp = x;
while (temp != 0) {
length++;
temp /= 10;
}
int digit, revx = 0;
for (int i = 0; i < length; i++) {
digit = x % 10;
if (revx > 214748364 || (revx == 214748364 && digit > 7)) {
return 0;
}
revx = revx * 10 + digit;
x = x / 10;
}
if (flag == 1) {
revx = -revx;
}
return revx;
}