题目描述
难度:简单
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
解题思路
利用Stringbuilder的reverse()方法来对数字进行反转,注意一些溢出细节即可
代码如下
class Solution {
public int reverse(int x) {
Stack<Integer> stack=new Stack<Integer>();
Long result=new Long(0);
if (x>=0) {
String numString=x+"";
StringBuilder stringBuilder=new StringBuilder(numString);
stringBuilder.reverse();
numString=stringBuilder.toString();
result=Long.valueOf(numString);
if (result>Math.pow(2, 31)-1) {
result=new Long(0);
}
}
if (x<0) {
String numString=x+"";
StringBuilder stringBuilder=new StringBuilder(numString);
stringBuilder.reverse();
numString="-"+stringBuilder.toString().substring(0,numString.length()-1);
result=Long.valueOf(numString);
if (result<-Math.pow(2, 31)) {
result=new Long(0);
}
}
return result.intValue();
}
}