返回

逆向思维反转整数,从0到正无穷通通安排

前端

进入4月份啦,掘金小目标14题继续进行中,今天是刷题的第4天,题目是整数反转,一起来看看吧!

方法一:字符串翻转法

字符串翻转法是将整数转换为字符串,然后使用内置的字符串翻转函数实现翻转,再将反转后的字符串转换为整数。这种方法简单易懂,代码也很简短。

def reverse_integer(num):
    # 将整数转换为字符串
    num_str = str(num)

    # 使用内置函数翻转字符串
    reversed_num_str = num_str[::-1]

    # 将翻转后的字符串转换为整数
    reversed_num = int(reversed_num_str)

    return reversed_num


# 测试
num = 123
reversed_num = reverse_integer(num)
print(reversed_num)  # 输出:321

方法二:循环取余法

循环取余法是通过循环逐个取余,再将余数累积起来形成反转后的整数。这种方法的计算复杂度较高,但避免了字符串转换的开销。

def reverse_integer(num):
    # 负数的处理
    negative = False
    if num < 0:
        negative = True
        num = -num

    reversed_num = 0
    while num > 0:
        # 取余
        digit = num % 10

        # 累积余数
        reversed_num = reversed_num * 10 + digit

        # 整除
        num //= 10

    # 如果是负数,加上负号
    if negative:
        reversed_num = -reversed_num

    return reversed_num


# 测试
num = 123
reversed_num = reverse_integer(num)
print(reversed_num)  # 输出:321

比较

两种方法各有利弊。字符串翻转法简单易懂,但会产生字符串转换的开销。循环取余法计算复杂度较高,但避免了字符串转换的开销。

在实际应用中,如果整数的长度很长,则字符串翻转法可能会出现性能问题。此时,循环取余法是一个更好的选择。

总结

整数反转是一个常见且有趣的编程问题。本文介绍了两种实现整数反转的常见方法:字符串翻转法和循环取余法。读者可以根据实际情况选择合适的方法来解决问题。