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 [-231, 231 - 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
class Solution(object):
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
str_x = str(x)
rev_ans = 0
hex_lower = -0x80000000
hex_upper = 0x7fffffff
if x < 0:
rev_str_x = "-" + str_x[:0:-1]
rev_int = int(rev_str_x)
else:
rev_str_x = str_x[::-1]
rev_int = int(rev_str_x)
if x >= 0:
if rev_int == rev_int & hex_upper:
rev_ans = rev_int
else:
if hex_lower == rev_int & hex_lower:
rev_ans = rev_int
return rev_ans
sol = Solution()
sol.reverse(-123)