Back to Leetcode Go

7. Reverse Integer

website/content.en/ChapterFour/0001~0099/0007.Reverse-Integer.md

1.7.971.3 KB
Original Source

7. Reverse Integer

Problem

Given a 32-bit signed integer, reverse digits of an integer.

Example 1:

Input: 123
Output: 321

Example 2:

Input: -123
Output: -321

Example 3:

Input: 120
Output: 21

Note: Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−2^31, 2^31 − 1]. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.

Problem Summary

Given a 32-bit signed integer, you need to reverse the digits of this integer. Note: assume our environment can only store 32-bit signed integers, whose numeric range is [−2^31,  2^31 − 1]. Based on this assumption, return 0 if the reversed integer overflows.

Solution Approach

  • This is an easy problem that requires reversing a decimal number. A similar problem is Problem 190.
  • For this problem, you only need to pay attention to one thing: the reversed number must be within the range [−2^31, 2^31 − 1]; any number exceeding this range should output 0.

Code

go

package leetcode

func reverse7(x int) int {
	tmp := 0
	for x != 0 {
		tmp = tmp*10 + x%10
		x = x / 10
	}
	if tmp > 1<<31-1 || tmp < -(1<<31) {
		return 0
	}
	return tmp
}