您的位置:首页 > 其它

【leetcode】腾讯50题—整数反转

2019-05-12 22:39 543 查看

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

示例 1:

输入: 123
输出: 321
示例 2:

输入: -123
输出: -321
示例 3:

输入: 120
输出: 21
注意:

假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2 ^31 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

import math
class Solution:
def reverse(self, x: int) -> int:
def add(x):
sum=0
l=list(str(x))
l1=list(reversed(l))
for i in range(len(l1)):
a=int(l1[i])
b=int(math.pow(10,len(l1)-i-1))
sum+=a*b
if sum>=-2147483648 and sum<=2147483647:
return sum
return 0
if x>0:
return add(x)
elif x==0:
return 0
else:
x=-x
return -add(x)
return 0
  • 将列表中内容反转:
    l1=reversed(l)
  • 求幂
    调用math,math.pow(x,n)
  • 此题的关键在于考虑题中给出的所有情况,包括负整数,还有输出值得溢出情况。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: