我正在磨一些LeetCode的东西,问题之一是反转整数(例如123变成321)。
我想到了两种方法。第一个是纯粹的“数字”,使用10的幂和模块化算术:
def reverse_digits1(num):
reversed_num = 0
while num > 0:
reversed_num *= 10
reversed_num += num % 10
num = num // 10
return reversed_num
第二种方法是使用内置的str()
和int()
方法。
def reverse_digits2(num):
num = str(num)
return int(num[::-1])
您基本上将其转换为字符串,将其反转,然后将反转的字符串作为整数返回。
在这2个之间,哪个是“更好”的方法?我猜这是第一个,它不涉及将数字突变为字符串,反之亦然,并且没有潜在的信息损失吗?甚至会丢失信息吗?输入都是整数,因此不需要担心浮点数,对吗?
通常,通过str()
和int()
处理数字是个好主意,还是应该坚持使用“数值方法”?