Description:
Reverse digits of an integer.
Example 1:
Input:123
Output:321
Example 2:
Input:-123
Output:-321
Note:
The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows
Subscribe to see which companies asked this question.
Solution:
1.判断输入是否为0,若是,直接返回0
2.判断输入是否越界,若是,直接返回0
3.判断整数是否正数,若否,跳到第6步,若是,设结果变量用于存储当前所求结果,设输入变量用于存储输入整数,跳第4步
4.先求输入变量对10求模的结果,提取其个位数的数字,再将结果变量乘10,最后将输入变量与结果变量相加,获得当前的反转结果
5.输入变量除10,判断是否>0,若是,跳回第4步,若否,跳第7步
6.取整数相反数,跳第3步
7.若判断输入整数大于0,返回结果变量;若输入整数小于0,返回结果变量的相反数
代码:
public class HW1
{
public static int reverseInteger(int x)
{
int result=0;
int input=x;
if(input==0)
return result;
if(input>java.lang.Integer.MAX_VALUE)
return result;
if(input>0)
{
int tmp1=0;
int tmp2=0;
while(input>0)
{
tmp1=result*10;
tmp2=input%10;
result=tmp1+tmp2;
input=input/10;
}
return result;
}
else
{
return -reverseInteger(-x);
}
}
}
测试结果: