java 实现Leetcode Reverse Integer问题
这篇文章实现leetcode 里面的Reverse Integer问题
查看题目点击这里
Reverse Integer是我做leetcode以来最简单的题目来着,其实就是求一个数字,每一为位逆序生成的数字,例如:输入123,输出321;输入-123,输出-321;
这里要注意的点就是一个是数字过大,溢出的问题;在Java里面如果int数字大于32位,那么会取它的前32位,高位丢弃,这在int 转byte也是一样的。
代码实现如下:
boolean isLowZero = false;
if (x < 10 && x > -10) {
return x;
}
if (x < 0) {
x = x * (-1);
isLowZero = true;
}
ArrayList<Integer> listArray = new ArrayList<Integer>();
while (x >= 10) {
listArray.add(x % 10);
x = x / 10;
}
listArray.add(x);
int i = 1;
x = 0;
for (int k = listArray.size() - 1; k >= 0; --k) {
x = x + i * listArray.get(k);
i = i * 10;
}
int temp = x;
for (int k = listArray.size() - 1; k >= 0; --k) {
if (temp % 10 != listArray.get(k)) {
return 0;
}
temp = temp/ 10;
}
if (isLowZero) {
x = x * -1;
}
return x;
整个的实现是比较简单的,这里就不在过多的说了!