给你一个 32 位的有符号整数 x
,返回将 x
中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1]
,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
示例 1:
输入:x = 123 输出:321
示例 2:
输入:x = -123 输出:-321
示例 3:
输入:x = 120 输出:21
示例 4:
输入:x = 0 输出:0
提示:
-231 <= x <= 231 - 1
原题如上
我的解题思路
class Solution:
def reverse(self, x: int) -> int:
if x >= 0:
x = str(x)
list1 = list(x)
list1 = list(reversed(list1))
list1 = "".join(list1)
x = int(list1)
else:
x = -x
x = str(x)
list1 = list(x)
list1 = list(reversed(list1))
list1 = "".join(list1)
x = int(list1)
x = -x
if x>=(-2)**(31) and x<=2**(31)-1:
return x
else:
return 0
这里边主要用到了两个关键函数
.join()函数,可以把一个列表的函数连接成一个字符串输出
其前方的
""就表示中间没有间隔
" "就表示每个元素之间加一个空格
同理"."就表示每个中间加一个.
reversed函数,可以把列表反向
必须在list函数内使用,否则出不来结果,其结果与list函数搭配后,可以输出一个反向的列表。
整体思路:
1:利用str函数把int类型的输入值转换为str类型
2:把str类型的变量利用list函数转为列表
3:利用reversed函数反向列表
4:利用join函数把列表整合为str输出
5:把str类型的数转为int类型的输出,结果就是反向的
PS:中间有一些比较简单的地方没有说,例如最后的判断啊和正负数的判断。