Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
题目描述:按位反转数字
2种解题思路:
①变为StringBuffer,调用reverse函数再调用Integer的valueOf函数,通过捕捉异常判断是否溢出:
leetcode通过时间为:7 ms
public class Solution {
public int reverse(int x) {
String s = ""+x;
if(s.startsWith("-"))
{
s = "-" + new StringBuffer(s.substring(1, s.length())).reverse().toString();
}
else
{
s = new StringBuffer(s).reverse().toString();
}
try {
return Integer.valueOf(s);
} catch (Exception e) {
return 0;
}
}
}
②通过除法取余:
leetcode通过时间为:2 ms
public class Solution {
public int reverse(int x) {
long rs = 0;
boolean flag = false;
if(x<0)
{
flag = true;
x = -x;
}
while(x!=0)
{
rs = rs*10 + x%10;
x/=10;
}
if(flag)
rs = -rs;
if(rs>Integer.MAX_VALUE || rs<Integer.MIN_VALUE)
return 0;
else
return (int)rs;
}
}