正数反转
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−, − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
解题:
class Solution {
public int reverse(int x) {
int y = 0;
while (x != 0) {
if (x < Integer.MIN_VALUE / 10 || x > Integer.MAX_VALUE / 10) {
return 0;
}
int res = x % 10;
x /= 10;
y = y * 10 + res;
}
return y;
}
}
理解:
首先定义一个返回值y,如果x不是0则进行循环取反,首先判断x是否超出了取值范围,如果超出返回0
因为是倒转,可以使用取余取到数字最后一位,然后除以10,依次进行,就可以取到每一次的最后一位,从而实现整数倒转。