7. Reverse Integer¶
Description¶
Given a signed 32-bit integer x, return x with its digits reversed. If reversing x causes the value to go outside the signed 32-bit integer range \([-2^{31}, 2^{31} - 1]\), then return 0.
Assume the environment does not allow you to store 64-bit integers (signed or unsigned).
Example 1:
Input: x = 123
Output: 321
Example 2:
Input: x = -123
Output: -321
Example 3:
Input: x = 120
Output: 21
Constraints:
- \(-2^{31} <= x <= 2^{31} - 1\)
Solutions¶
I Math¶
Complexity:
- Time complexity: \(O(n)\), where \(n\) is the number of digits in \(x\).
- Space complexity: \(O(1)\).
func reverse(x int) int {
num := 0
for ; x != 0; x /= 10 {
num = num*10 + x%10
}
if num > 1<<31-1 || num < -1<<31 {
return 0
}
return num
}