题目:
从例子中我们可以知道这道题要求的是把整数反转(其中需要注意的是反转后得到的整数首个数字不能是0,且最后的要是数字不能是"-"号)。
e.g.
01234
和
321-
都是不符号要求的。
我想到先把给定的数字x无论是正负,都先看作是正数(负数的话最后加一个负号就行)来计算,而Python的字符串切片来实现反转比较容易想到,所以我们只需str(x)就可以实现。
最后别忘了对反转后整数是否超过 32 位的有符号整数的判断。
以下是代码:
class Solution:
def reverse(self, x: int) -> int:
i=-1
if x==0:
return x
if str(x)[0] != "-":
while str(x)[i] == "0":
i-=1
a=eval(str(x)[i::-1])
if a>=pow(-2,31) and a<=pow(2,31)-1:
return a
else:
return 0
else:
s = str(x)[1:]
while s[i] == "0":
i-=1
b=-eval(s[i::-1])
if b>=pow(-2,31) and b<=pow(2,31)-1:
return b
else:
return 0