扫码阅读
手机扫码阅读
听:测试开发面试题解(1)-整数反转
139 2024-10-18
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
查看原文:听:测试开发面试题解(1)-整数反转
文章来源:
光荣之路
扫码关注公众号
整数反转面试题解析
本文由何发奋撰写,旨在解答一个简单难度的测试开发面试题——整数反转。该题要求将一个32位有符号整数的每位数字进行反转,考虑到整数溢出的情况。
题目描述
题目要求反转一个32位的有符号整数。例如,输入123应输出321;输入-123应输出-321;输入120应输出21。需要注意的是,如果反转后的整数超出了[−2 31, 2 31−1]的范围,就应当返回0。
算法解析
解决方案涉及将整数转为字符串进行反转,然后再转回整数,但需要分别处理正数和负数两种情况。对于正数,直接转换为字符串并反转;对于负数,则先取绝对值再进行相同的操作。
输出结果也需要分类讨论:如果反转后的整数超出32位有符号整数的表示范围,即不在[−2 31, 2 31−1]之间,应返回0;否则返回反转后的整数。
考点归纳
本题测试了求绝对值的abs
函数,整数和字符串类型之间的转换,以及字符串的倒序输出。
代码实现
def reverse(x):
"""
:type x: int
:rtype: int
"""
if x >= 0:
result = int(str(x)[::-1]) # 将x转换为str类型,翻转,再转换回int
else:
result = -int(str(abs(x))[::-1]) # x为负数,反转其绝对值
if result > 2**31 - 1 or result < -2**31:
return 0 # 如果结果溢出,返回0
return result
想要了解更多内容?
查看原文:听:测试开发面试题解(1)-整数反转
文章来源:
光荣之路
扫码关注公众号
光荣之路的其他文章
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线