7-ReverseInteger

ReverseInteger

Example1: x = 123,return 321 

Example2: x = -123,return -321

Note:

The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows.

输入假定为32位有符号整数。当反转的整数溢出时您的函数应返回0


解题思路:首先判断这个数绝对值是否大于整型最大值,如果大于直接返回0,如果小于0,取绝对值并加上标记,然后就是将数字转为字符串转为char数组,通过循环首尾数据进行对调。


	public static int reverse(long i) {
		boolean flag = false;
		if (i > 2147483647 || i < -2147483647) {
			return 0;
		}

		if (i < 0) {
			flag = true;
			i = Math.abs(i);
		}
		char[] temp = String.valueOf(i).toCharArray();
		for (int start = 0, end = temp.length - 1; start < end; start++, end--) {
			char firstV = temp[start];
			temp[start] = temp[end];
			temp[end] = firstV;
		}

		if (flag) {
			if (Long.valueOf(String.valueOf(temp)) > 2147483647) {
				return 0;
			} else {
				return -Integer.valueOf(String.valueOf(temp));
			}
		} else {
			if (Long.valueOf(String.valueOf(temp)) > 2147483647) {
				return 0;
			} else {
				return Integer.valueOf(String.valueOf(temp));
			}
		}
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值