leetcode算法实现之整数反转reverse_integer

2021/9/29 12:10:49

本文主要是介绍leetcode算法实现之整数反转reverse_integer,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

-- coding: utf-8 --

  • https://leetcode-cn.com/problems/reverse-integer
    """
    给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。

如果反转后整数超过 32 位的有符号整数的范围 [−231,  231 − 1] ,就返回 0。

  • 考虑边界
    1.末尾为零的int,反转时删除,末尾连续为0,删至不为0为止
    2.有符号的,符号保持
    3.个位数,直接返回

示例 1:
输入:x = 123
输出:321

示例 2:
输入:x = -123
输出:-321

示例 3:
输入:x = 120
输出:21

示例 4:
输入:x = 0
输出:0
"""

python

def reverse_integer(num):
    """

    :param num: int
    :return: reverse num
    """
    if not isinstance(num, int):
        return False

    num2Str = str(num)
    n = len(num2Str)
    if n == 1 or (n == 2 and num2Str[0] == '-'):
        return num

    def reverse_handle(start, end, numstr):
        stack_ = list()
        for i in range(start, end):
            ch = numstr[i]
            stack_.append(ch)
        newnumstr = ''
        for i in range(start, end):
            newnumstr += stack_.pop()

        count_0 = 0
        for i in range(end-start):
            if i > 0 and newnumstr[i] == '0' and newnumstr[i-1] == '0':
                count_0 += 1
                if newnumstr[i+1] != '0':
                    break
            elif i == 0 and newnumstr[i] == '0':
                count_0 += 1

        newnumstr = newnumstr[count_0:]


        return int(newnumstr)

    if n >= 2:
        if num2Str[0] == '-':
            newnum = reverse_handle(1, n, num2Str)
            return -newnum
        else:
            newnum = reverse_handle(0, n, num2Str)
            return newnum


if __name__ == "__main__":
    num1 = 0
    num2 = -123
    num3 = 120
    num4 = -140
    num5 = 25000
    num6 = -65000
    num7 = -5901010100
    print(reverse_integer(num1))
    print(reverse_integer(num2))
    print(reverse_integer(num3))
    print(reverse_integer(num4))
    print(reverse_integer(num5))
    print(reverse_integer(num6))
    print(reverse_integer(num7))


这篇关于leetcode算法实现之整数反转reverse_integer的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程