No.7整数反转
解:
class Solution:
def reverse(self, x: 'int') -> 'int':
#将符号单独处理
sign = [1,-1][x < 0]
#完成反转。符号加字符串绝对值,强转int
rst = sign * int(str(abs(x))[::-1])
#控制32位数
# return rst if -2147483648 < rst < 2147483647 else 0
x = float(rst)
if (x < float(-2 << 30)) | (x >= float(2 << 30)):
return 0
x = int(x)
return x
#版本2 (傻瓜版)
class Solution:
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
if x >= 0:
y = int(str(x)[::-1])
if -2**31 <= y <= 2**31 - 1:
return y
else:
return 0
else:
y = -int(str(-x)[::-1])
if -2**31 <= y <= 2**31 - 1:
return y
else:
return 0
“”"
学习一下两个列表表示符号的表达方式。
!查了半天也没有个结果。。根据对比大概就是满足后面条件,执行第二个。
看了一下作者给的解答是,前一个是列表,后一个是判断条件。这个用法?还没见识太多。姑且先这么记忆吧。
强转思路,绝对值abs()的运用。也可以直接判断"-"。不过,就不帅
最后学习一下。用>> 和 << 表示进位!注意,比直接用数节省时间。
“”"
找到一个类似,却相同的内容参考一下。