算法设计与分析HW1:LeetCode7

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);
			
		}
	}
}


测试结果:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章