Reverse digits of an integer.
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.
输入样例包括:9646324351这种超过32位的数字
思路一:就当成普通字符串,颠倒顺序处理即可,注意当位数不符int类型时返回0即可。
public int reverse(int x) {
try{
String s = x+"";
StringBuilder sb = new StringBuilder();
int index = 0;
if(s.charAt(0)==('-'))
{
sb.append("-");
index++;
}
for(int j = s.length()-1;j>=index;j--){
sb.append(s.charAt(j)+"");
}
return Integer.parseInt(sb.toString());
}catch(Exception e){
return 0;
}
}
思路二:当成正常的数值进行运算,诸位取出(取余)在存入新数,并判断是否超过位数
public int reverse(int x)
{
int result = 0;
while (x != 0)
{
int tail = x % 10;
int newResult = result * 10 + tail;
if ((newResult - tail) / 10 != result)
{ return 0; }
result = newResult;
x = x / 10;
}
return result;
}
思路二参考:https://leetcode.com/problems/reverse-integer/discuss/