您的位置:首页 > 其它

LeetCode——Reverse Integer

2014-11-16 09:26 666 查看


Reverse Integer



Reverse digits of an integer.

Example1: x = 123, return 321

Example2: x = -123, return -321
public class Solution {
public int reverse(int x) {
String tmp = new String();
String tmp_2 = new String();
tmp = ((Integer) x).toString();

if (tmp.charAt(0) == '-') {
for (int i = tmp.length() - 1; i > 0; i--)
tmp_2 = tmp_2 + tmp.charAt(i);
tmp = "-" + tmp_2;
} else {
for (int i = tmp.length() - 1; i >= 0; i--)
tmp_2 = tmp_2 + tmp.charAt(i);
tmp = tmp_2;
}

return Integer.parseInt(tmp);
}
}




Submission Result: Runtime Error

Runtime Error Message:Line 17: java.lang.NumberFormatException: For input string: "7463847412"
Last executed input:2147483647





返回结果超出int整数范围,应该考虑转化之后数值大小的边界检查


原先的思路是用穷举法对结果检查,试了很多次都没有pass;一怒之下,直接用try/catch捕捉异常,搞定。


Java代码:


public class Solution {
public int reverse(int x) {
String tmp = new String();
String tmp_2 = new String();
tmp = ((Integer) x).toString();

if (tmp.charAt(0) == '-') {
for (int i = tmp.length() - 1; i > 0; i--)
tmp_2 = tmp_2 + tmp.charAt(i);
tmp = "-" + tmp_2;
} else {
for (int i = tmp.length() - 1; i >= 0; i--)
tmp_2 = tmp_2 + tmp.charAt(i);
tmp = tmp_2;
}
try{
Integer.parseInt(tmp);
}catch(Exception e){
return 0;
}
return Integer.parseInt(tmp);
}
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: