0%

数字转置

题目:

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

(注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Solution:
def reverse(self, x: int) -> int:
res = list(str(x))
res.reverse()
# 判断 第一项是否为0
if res[0]==0:
res.pop(0)
# 转为str
ans = ''.join(res[:-1])

# 判断最后一项
if res[-1] == '-':
ans = '-'+ans
else:
ans += res[-1]

# 转为 int
ans = int(ans)
if -2**31 <=ans<= 2**31-1:
return ans
else:
return 0

解题思路:

先将输入的数字转化为字符型的列表, 然后一次判断各种条件 最后转化为int