算法设计与分析HW1:LeetCode7

整数翻转算法实现
本文介绍了一种翻转32位整数的算法,并提供了详细的步骤解析及Java代码实现。该算法能正确处理正负整数翻转,并考虑了溢出情况。

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


测试结果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值