一、题目
1、审题:
2、分析:
将所给整数进行翻转,注意溢出。
二、解答
1、分析:
方法一、将所给整数化为字符数组,翻转后重新组合成整数。
class Solution { public int reverse(int x) { if(x == 0) return 0; String s = Integer.toString(x); boolean flag = true; if(x < 0) { flag = false; s = s.substring(1); } int index = s.length() - 1; while(index >= 0 && s.charAt(index) == '0') { s = s.substring(0, index); // index--; } char[] arr = s.toCharArray(); char[] arr2 = new char[arr.length]; for (int i = 0; i < arr.length ; i++) { arr2[i] = arr[arr.length -1 -i]; } Long result = Long.valueOf(String.valueOf(arr2)); if(result > Integer.MAX_VALUE) return 0; if(flag == false) result = -result; return result.intValue(); } }
方法二:不用借助数组,直接进行翻转
public int reverse2(int x) {
boolean isNegative = false;
if(x < 0) {
isNegative = true;
x = -x;
}
long result = 0;
while(x != 0) {
result = result * 10 + x % 10;
x /= 10;
}
if(isNegative)
result = -result;
if(result > Integer.MAX_VALUE || result < Integer.MIN_VALUE)
return 0;
return (int)result;
}