Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
我的第一感觉我就要把它弄成字符串,然后一下子弄出来,结果也实现了,可是超时了。
public int reverse(int x) {
String str = x + "";
String strX = "";
if (str.length() == 1)
return x;
if (str.charAt(0) != '-')
for (int i = str.length() - 1; i >= 0; i--)
strX += str.charAt(i);
else {
strX = str.charAt(0) + "";
for (int i = str.length() - 1; i > 0; i--)
strX += str.charAt(i);
}
return Integer.valueOf(strX);
}
后来没有办法就只能换一种耗时比较短的算法。
public int reverse1(int x) {
int reverseNum = 0;
int temp = 0;
while (x != 0) {
temp = reverseNum * 10 + x % 10;
x = x / 10;
if (temp / 10 != reverseNum) {
reverseNum = 0;
break;
}
reverseNum = temp;
}
return reverseNum;
}