题目在这:https://leetcode-cn.com/problems/reverse-integer/
题目要求做一个数的翻转,直接想到py里的切片方法翻转一个数.

大致思路比较简单,首先记录该数是正的还是负的,然后转成str类型进行翻转,最后判断是不是在条件区间内,然后如果为负加上符号就行了.

上代码!

= 1534236469
st = ''
temp = True # 表示为正
# 如果小于0 就把标记置为负
if num<0:
num = abs(num)
temp = False
st = abs(num)
# 利用切片翻转字符串
st = st[::-1]
# 利用前面的标记 给负数加上符号
if not temp:
st = '-' +st
# 变成int类型
st = int(st)
# 判断范围 返回结果
if (st > -2**31) and (st < 2**31-1):
# if -2**31 < st < 2**31-1: # 这个不对..
print(st)
else:
print(0)

另外一种思路,就是大学里面用C写字符串翻转的思路,取余然后除10那个思路.

上代码!

num = x
temp = x
res = 0
num = abs(num) # abs方法 吧一个负数变正
while num != 0:
res = res*10 +num%10
num //=10
if (res > -2**31) and (res < 2**31-1):
return res if x>0 else -res
else:
return 0

代码还是比较好理解的,放pycharm里跑一次就懂了.

return res if x>0 else -res
这句话就等于
if x>0:
return res
else:
return:-res