这道题有几个需要注意的点,第一个是对于反转后开头0的处理,这里我使用python,通过字符串对象的replace方法删除头部的0,但是要注意一次只替换一个,不能让它把中间的0也替换掉了。
第二就是对于只有1个输入0的时候,一种方法是单独判断,另一种方法是判断字符串长度如果为0,说明字符串全部由0组成并且都被删除了,这个时候补上即可。
1 class Solution: 2 def reverse(self, x: int) -> int: 3 if x==0: 4 return 0 5 ans=1 6 if x<0: 7 ans=-1 8 x=-x 9 str1=str(x) 10 str1=str1[::-1] 11 while(str1[0]=='0'): 12 str1=str1.replace('0','',1) 13 ans=ans*eval(str1) 14 if ans>(2**31-1): 15 return 0 16 if ans<(0-2**31): 17 return 0 18 return ans