7.整数反转

题目:给一个32位有号整数,要求将整数反转得到新整数,若原整数不在[-2^31, 2^31-1]范围,则返回0。

Python理论上可以存储无穷大的数,因此题目的32位即[-2^31, 2^31-1]只需Python作出范围的判断不用更换类型。

反转的思路:

进行类型的转换——将数转换成字符串类型,问题等价于反转字符串,按照序号排列顺序,之后只要取序号即可得到一个个的数。

或,利用整数的性质,对整数进行取模及整除的操作。

或,栈?

class Solution:
    def reverse(self, x: int) -> int:
        strX = str(x)
        length = len(strX)
        result = ""
        if "-" in strX:
            for i in range(length - 1):
                result = result + strX[length - i - 1]
            result = "-" + result
        else:
            for i in range(length):
                result = result + strX[length - i - 1]
        if int(result) < -2**31 or int(result) > 2**31 -1:
            return 0
        return int(result)
posted @ 2024-04-21 19:41  jiayusu  阅读(3)  评论(0编辑  收藏  举报