7. 整数反转
1.题目描述及示例
-
题目描述
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 -
示例
2.题解思路及代码
-
思路
-
代码
public int reverse(int x) {
int ans = 0;
while (x != 0) {
int pop = x % 10;
if (ans > Integer.MAX_VALUE / 10 || (ans == Integer.MAX_VALUE / 10 && pop > 7))
return 0;
if (ans < Integer.MIN_VALUE / 10 || (ans == Integer.MIN_VALUE / 10 && pop < -8))
return 0;
ans = ans * 10 + pop;
x /= 10;
}
return ans;
}
//这是我的思路,很挫
public int reverse(int x) {
if (x==Integer.MIN_VALUE)
return 0;
int tag=0;
if (x<0)
tag=1;
x=Math.abs(x);
double num=0;
StringBuilder stringBuilder=new StringBuilder(String.valueOf(x));
stringBuilder=stringBuilder.reverse();
if (tag==0)
{
num=Double.parseDouble(stringBuilder.toString());
if (num>Integer.MAX_VALUE)
return 0;
}
else
{
num=-Double.parseDouble(stringBuilder.toString());
if (num<Integer.MIN_VALUE)
return 0;
}
return (int)num;
}