给定一个十进制整数,将其数字进行反转。假设我们的环境只能存储 32 位有符号整数,其数值范围是 [2^31, 2^31-1]。根据这个假设,如果反转后的整数溢出,则返回 0。
时间: 2023-05-31 12:08:05 浏览: 105
java代码-任意给出一个十进制整数,将十进制整数转换为二进制数。
好的,这是一道算法题。以下是一个可能的解法:
```python
class Solution:
def reverse(self, x: int) -> int:
if x < 0:
sign = -1
x = -x
else:
sign = 1
r = 0
while x > 0:
r = r * 10 + x % 10
x //= 10
r *= sign
if r < -2**31 or r > 2**31-1:
return 0
else:
return r
```
这个解法首先判断了输入整数的符号,然后利用一个循环,将其数字进行反转,最后再加上符号并检查是否溢出。如果结果超过了 32 位有符号整数的范围,则返回 0。
阅读全文