📜  TCS 编码练习题 |反转数字(1)

📅  最后修改于: 2023-12-03 15:20:32.741000             🧑  作者: Mango

TCS 编码练习题 | 反转数字

简介

这是一道 TCS 编码练习题,要求实现一个函数,将给定的整数反转。例如,输入 12345,输出 54321。

解题思路

对于一个整数 x,我们可以将其反转为 y,不断取出 x 的末位,加到 y 的末尾,直到 x 为 0。具体实现时,我们可以通过循环取出 x 的末位,然后将其乘以进位因子加到 y 中。进位因子初始值为 1,每次循环将其乘以 10。

代码实现
def reverse_number(x):
    y = 0
    sign = -1 if x < 0 else 1
    x *= sign
    while x:
        y = y * 10 + x % 10
        x //= 10
    return y * sign
测试样例
print(reverse_number(12345))  # 54321
print(reverse_number(-12345))  # -54321
print(reverse_number(0))  # 0
性能分析

此算法的时间复杂度为 $O(\log_{10}x)$,空间复杂度为 $O(1)$。其中,$x$ 为输入的整数。算法的性能较为优秀,可以满足大多数场景的需求。