题目:给出一个 32 位的有符号整数,将这个整数中每位上的数字进行反转
import math
class Solution:
def reverse(self, x: int) -> int:
rou1 = -2 **31
rou2 = 2 **31
list = []
num3 = 0
flat = False
if x < 0 :
x = x * -1 #如果输入为负值,先改为正值进行运算
flat = True #标记这个数为负值
num2 = str(x) #转换数字类型
for x in num2: #将输入的数字拆分
list.append(x) #遍历加入到列表
for m, n in enumerate(list): #第一位数乘以10的0次方,第二位乘以10的一次方,如此类推
num3 += int(list[m]) * (10**m)
if flat is True : #如果输入为负数,把结果也改成负值
num3 = num3 * -1
if num3 < rou1 or num3 > (rou2 - 1) : #判断是否溢出
return 0
else:
return num3
如有错漏,多多指教
题库来源:https://leetcode-cn.com/