LeetCode Reverse Integer

LeetCode Reverse Integer

Reverse digits of an integer.

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

Have you thought about this?Here are some good questions to ask before coding. Bonus points for you if you have already thought through this!

If the integer's last digit is 0, what should the output be? ie, cases such as 10, 100.

Did you notice that the reversed integer might overflow? Assume the input is a 32-bit integer, then the reverse of 1000000003 overflows. How should you handle such cases?

For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.

Update (2014-11-10):
Test cases had been added to test the overflow behavior.


题意就是要我们把整数逆序,需要注意当逆序之后超出int表示范围时,返回0。所以我们用double来保存逆序之后的整数,将其和INT_MAX比较,如果大于INT_MAX,则输出0。

完整代码如下:

class Solution {
public:
	int reverse(int x) {
		unsigned int y = (x > 0) ? x : -x;
		double ans = 0;
		while (y)
		{
			ans = ans * 10 + (y % 10);
			y = y / 10;
		}
		if (ans > INT_MAX)
			return 0;
		return x < 0 ? -ans : ans;
	}
};

本代码提交AC,用时8MS。

One thought on “LeetCode Reverse Integer

  1. Pingback: LeetCode Palindrome Number | bitJoy > code

Leave a Reply

Your email address will not be published. Required fields are marked *