为提高自己的专业技术,艺多不压身,早上吃了饭就去了LeetCode看了看,觉得挺有意思的。
记录一下答题过程吧
题目是这样的:
给定一个范围为 32 位 int 的整数,将其颠倒。
例 1:
输入: 123 输出: 321
例 2:
输入: -123 输出: -321
例 3:
输入: 120 输出: 21
注意:
假设我们的环境只能处理 32 位 int 范围内的整数。根据这个假设,如果颠倒后的结果超过这个范围,则返回 0。
下面是我的解答:
boolean flag = false;
String tmp = String.valueOf(x);
if(tmp.contains("-")){
tmp = tmp.replaceAll("-", "");
flag = true;
}
StringBuilder sb = new StringBuilder();
for(int i = tmp.length();i>0;i--){
sb.append(tmp.substring(i-1, i));
}
if(flag){
sb.insert(0, "-");
flag = false;
}
Long result = Long.parseLong(sb.toString());
if(result<Integer.MIN_VALUE || result>Integer.MAX_VALUE){
return 0;
}else{
return Integer.parseInt(sb.toString());
}
}