7. 整数反转
思路:这一题题目很简单,但是很容易错,因为要考虑溢出的问题。
输入: -123
输出: -321
我最开始的代码是这样的:
public int reverse(int x) {
int n = 0;
while(x != 0) {
n = n*10 + x%10;
x = x/10;
}
return n;
}
因此会有溢出这种情况,因此我们不可以用int来定义n,因此我们用long,但是题目要求返回int类型,我们最后只需要加一个判断即可:
public int reverse(int x) {
long n = 0;
while(x != 0) {
n = n*10 + x%10;
x = x/10;
}
return n>Integer.MAX_VALUE||n<Integer.MIN_VALUE? 0:(int)n;
}