题目
给出一个32位的有符号证书,你需要将这个整数中每位上的数字进行翻转(若有“-”负号,负号位置不改变)
注意
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31 , 2^31 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
思路
将输入数字x转换为单个字符,单个字符列表的形式,然后将列表反转,判断列表[o]位是否为0,是就去掉。取列表前len-1项(为了防止最后一项是‘-’)。判断最后一项,视情况填补位置
def solution:
def revers(self, x:int)-->int:
res = list(str(x))
res.reverse()
if res[0] == 0: #若反转后第一位为0则删除0
res.popleft()
ans =' '.join(res[:-1]) #转换成str
if res[-1] =='-'; #判断最后一项
ans = '-' + ans
else:
ans += res[-1]
ans = int(ans) #转换成int
if -2**31 <= ans <= 2**31-1:
return ans
else:
return 0