一、题目
二、分析
这道题的重点依次从后往前取出数字。用x/10代入循环,用x%10取余。但是需要注意,python的机制有点点特别,详情可见https://blog.youkuaiyun.com/sun___M/article/details/83142126,因此我选择的做法是如果x是负数,先将x=-x,再进行运算。
三、代码
class Solution:
def reverse(self, x: int) -> int:
ans = 0
flag=0
if x<0:
x = -x
flag=1
while x!=0:
ans = ans*10 + x%10
x = int(x/10)
if flag==1:
ans = -ans
if ans<-2**31 or ans > 2**31-1:
return 0
return ans
四、复杂度分析
时间复杂度:O(n)
空间复杂度:O(1)