返回
逆向思维反转整数,从0到正无穷通通安排
前端
2024-01-30 01:40:34
进入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
比较
两种方法各有利弊。字符串翻转法简单易懂,但会产生字符串转换的开销。循环取余法计算复杂度较高,但避免了字符串转换的开销。
在实际应用中,如果整数的长度很长,则字符串翻转法可能会出现性能问题。此时,循环取余法是一个更好的选择。
总结
整数反转是一个常见且有趣的编程问题。本文介绍了两种实现整数反转的常见方法:字符串翻转法和循环取余法。读者可以根据实际情况选择合适的方法来解决问题。