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

输入: 123
输出: 321

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

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

 

代码思路:

反转整数有两种,一种是转换成整数型字符串进行反转,另一种是直接堆整形进行算数运算。不管是哪种反转方法,最后都要转化成整形进行溢出判断。

方法一:使用字符串进行判断没有难度,但是速度较慢(注意 if 和 return 写法,很pythonic),这里有点绕的地方是在处理负数的时候,需要负号转一下。

class Solution(object):
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        num = (int(str(x)[::-1]) if x>0 else -int(str(-x)[::-1]))
        return (num if num< pow(2,31)-1 and num> pow(-2,31) else  0)

方法二:使用纯数字进行处理。

暂无

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄