ReverseInteger
Example1: x = 123,return 321
Example2: x = -123,return -321
Note:
The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows.
输入假定为32位有符号整数。当反转的整数溢出时,您的函数应返回0。
解题思路:首先判断这个数绝对值是否大于整型最大值,如果大于直接返回0,如果小于0,取绝对值并加上标记,然后就是将数字转为字符串转为char数组,通过循环首尾数据进行对调。
public static int reverse(long i) {
boolean flag = false;
if (i > 2147483647 || i < -2147483647) {
return 0;
}
if (i < 0) {
flag = true;
i = Math.abs(i);
}
char[] temp = String.valueOf(i).toCharArray();
for (int start = 0, end = temp.length - 1; start < end; start++, end--) {
char firstV = temp[start];
temp[start] = temp[end];
temp[end] = firstV;
}
if (flag) {
if (Long.valueOf(String.valueOf(temp)) > 2147483647) {
return 0;
} else {
return -Integer.valueOf(String.valueOf(temp));
}
} else {
if (Long.valueOf(String.valueOf(temp)) > 2147483647) {
return 0;
} else {
return Integer.valueOf(String.valueOf(temp));
}
}
}