解题思路
字符串反转
public int reverse(int x) {
if (x == Integer.MIN_VALUE) { //如果不做这个判断,下面的x=-x将会报错
return 0;
}
if(x <0)
return -reverse(-x);
String number = String.valueOf(x);
char[] arr = number.toCharArray();
int n = arr.length;
for(int i =0;i<n/2;i++){
char temp = arr[i];
arr[i] = arr[n-1-i];
arr[n-1-i]=temp;
}
String res = String.valueOf(arr);
long numRes = Long.valueOf(res);
return numRes <= Integer.MAX_VALUE ? (int)numRes : 0; //判断溢出
}
数字反转
public int reverse(int x) {
if (x == Integer.MIN_VALUE) { //如果不做这个判断,下面的x=-x将会报错
return 0;
}
if(x <0)
return -reverse(-x);
int res = 0;
while(x!=0){
if(res>Integer.MAX_VALUE/10)
return 0;
res = res *10+x%10;
x/=10;
}
return res <= Integer.MAX_VALUE ? res : 0;
}