
有些读者反映我写的内容太简单,有时候看不懂思路,我以后会记得写好思路。
一、数值法
1.取出符号位
2.%10一次取出x的每一位,再*10变为ans
3.判断是否超出
output = 0
if x >= 0:
flag=1
else:
flag=-1
x = abs(x)
while x != 0:
res = x % 10
x = int(x/10)
output = output * 10 + res
if -2**31 < flag * output < 2**31-1:
return flag * output
else:
return 0
二、字符串法
1.强制转换字符串
2.切片反转
3.判断符号
class Solution(object):
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
x = str(x)
x=x[::-1]
if (x[-1] == "-" and abs(int(x[:-1]) <= 2147483647)):
return int(x[:-1])*-1
if (x[-1]!="-" and int(x[:]) <= 2147483647):
return int(x[:])
return 0
本文深入探讨了两种实现整数反转的方法:数值法和字符串法。数值法通过数学运算逐位取出并重组数字,而字符串法则将整数转换为字符串进行反转。文章详细讲解了每种方法的步骤,并附带Python代码示例,最后判断反转后的结果是否超出32位整数范围。
884

被折叠的 条评论
为什么被折叠?



