给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
关键点:利用字符串的反转和溢出的判断条件
代码如下:
class Solution:
def reverse(self, x: int) -> int:
def reverse(s):
k=len(s)
if k==1:
return s
elif k%2==0:
s1=list(s)
l=k//2
for i in range(l):
tmp=s1[i]
s1[i]=s1[k-1-i]
s1[k-1-i]=tmp
else:
s1=list(s)
l=(k-1)//2
for i in range(l):
tmp=s1[i]
s1[i]=s1[k-1-i]
s1[k-1-i]=tmp
return s1
k=len(str(x))
s=str(x)
if s is None:
return s
if k==1:
return x
elif s[0]=='-':
#交换字符串
result=-1*(int(''.join(reverse(s[1:]))))
if result>(2**31)-1 or result<-1*(2**31):
result=0
else:
#交换字符串
result=int(''.join(reverse(s[:])))
if result>(2**31)-1 or result<-1*(2**31):
result=0
return result
网友评论