给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围[−2^31 , 2^31−1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。
这里我们复习一个字符串有关知识:
- [1:]–获取从位置1开始后面的字符(默认首位是0)
- [:-1]–删除位置为-1的字符(也就是获取从位置0带位置-1之间的字符)
- [-1:]–获取位置-1的字符
- [::-1]–从最后一个元素到第一个元素复制一遍。(也就是倒序)
- [:]–相当于完整复制一份str
def reverse_better(x):
if -10 < x < 10:
return x
if x >= 10:
# 讨论x为正数的情况
str_x = str(x)
str_x = str_x[::-1]
x = int(str_x)
else:
# 讨论x为负数情况
x = -x
str_x = str(x)
str_x = str_x[::-1]
x = int(str_x)
x = -x
return x if -2 ** 31 < x < 2 ** 31 - 1 else 0
y = reverse_better(36)
print(y)