题目:
给定一个 32 位有符号整数,将整数中的数字进行反转。
示例 1:
输入: 123 输出: 321
示例 2:
输入: -123 输出: -321
示例 3:
输入: 120 输出: 21
注意:
假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。
思想:
这道题很简单,就是先将数字变为字符串,然后按照字符串反转就行了,首先要判断是否为负数,然后还要判断反转后数字前面是否有0,有0就要去掉,最后还要判断是否越界。
代码:从这道题开始用python实现
def reverse(x):
if(isinstance(x,int) == False):
return
pnum = str(x)
if( x<10 and x >=0):
return int(x)
if(pnum[0] == '-'):#有符号
l = list(pnum[1:])
rnum ="-"
l.reverse()
for val in enumerate(l):
if val[1] == "0":
l[val[0]] = "*"
else:
break
l1 = []
for c in l:
if c != "*":
l1.append(c)
rnum+="".join(l1)
if (int(rnum) < int("-2147483648")):
rnum = "0"
else:
rnum = pnum[::-1]
l = list(rnum)
for val in enumerate(l):
if val[1] == "0":
l[val[0]] = "*"
else:
break
l1 = []
for c in l:
if c!="*":
l1.append(c)
rnum = "".join(l1)
if(int(rnum) > int("2147483647")):
print("rnum")
rnum="0"
return int(rnum)
if __name__ == "__main__":
print(reverse(-123))