leetcode07

这题挺简单的,就是在32位那里卡了会,一开始不理解整形32位是多少,其实就是2^32。之后又纠结了,为啥输入1234567819,要返回0,这数明明小于2^32。后来反应过来,这数倒过来后是大于2^32了,所以这里得判断两次。蠢货 0.0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
"""
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
click to show spoilers.
Note:
The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows.
"""
class (object):
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
temp = 1
new_x = []
if x > (2**31) or x < -(2**32):
return 0
if x < 0:
x = abs(x)
temp = -1
x = str(x)
for i in range(-1, -(len(x) + 1), -1):
new_x.append(x[i])
x = int(''.join(new_x))*temp
if x > (2**31) or x < -(2**31):
return 0