frendguo's blog

【LeetCode】7. Reverse Integer

原文地址:https://leetcode.com/problems/reverse-integer/#/description

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321

click to show spoilers.

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

对于取反这类题,都有一样的套路,就是从给定数的最后一位开始依次往前取,然后将其放到结果里面去就好了~

说多无益,直接上代码:

static int ReverseInteger(int x)
{
	int res = 0;
	while (x != 0)
	{
		int tail = x % 10;
		int newResult = res * 10 + tail;
		if ((newResult - tail) / 10 != res)
		{
			return 0;
		}
		res = newResult;
		x /= 10;
	}
	return res;
}

这里需要注意的地方是边界错误,也就是整数溢出问题,题干中也说明了,如果数据溢出统一返回 0 .所以这里采用临时变量 newResult , 将他做一次逆运算,如果结果符合则证明数据没有溢出,否则就是数据溢出了,直接返回 0。

Happy Coding!o(* ̄▽ ̄*)o

Add comment

Loading