7. 整数反转_强制转换

有些读者反映我写的内容太简单,有时候看不懂思路,我以后会记得写好思路。

一、数值法

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