您的位置:首页 > 其它

Leetcode题解 7. Reverse Integer

2016-04-15 14:44 337 查看
Reverse digits of an integer.

Example1: x = 123, return 321

Example2: x = -123, return -321

要考虑溢出的情况,用try catch捕获异常,感觉这道题好无聊。

public int reverse(int x) {
String xx = String.valueOf(x);
try {
int flag = 0;
StringBuilder sb = new StringBuilder();
if (xx.startsWith("-")) {
flag = 1;
}
Stack<Character> mStack = new Stack<Character>();
for (int i = (flag == 0 ? 0 : 1); i < xx.length();
i++) {
mStack.push(xx.charAt(i));
}
while (mStack.size() > 0) {
sb.append(mStack.pop());
}
return flag == 0 ? Integer.parseInt(sb.toString()) : -Integer.parseInt(sb.toString());
} catch (Exception exception) {
System.out.println("This is not an integer");
}
return 0;
}


别人的做法,感觉更好,学习一下。

public int reverse(int x) {
boolean flag = true;
if(x < 0){
flag = false;
x = x*-1;
}
long res = 0;
while(x > 0){
res = res *10 + x%10;
x = x / 10;
}
if(res > Integer.MAX_VALUE){
return 0;
}
if(flag){
return (int)res;
}else{
return (int)res * -1;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode