Leetcode 带符号整数反转

题目描述:给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。

如果反转后整数超过 32 位的有符号整数的范围 [−231,  231 − 1] ,就返回 0。

假设环境不允许存储 64 位整数(有符号或无符号)。

示例:输入 123          -123           0

   输出 321          -321           0

代码

 1 class Solution:
 2     def reverse(self, x: int) -> int:
 3         if x == 0 :
 4             return 0
 5         s = str(x)
 6         re = []
 7         s = s[::-1]  #先反转 123->321   -123->321-   120->021
 8         if s[0] != '0' and x >0:
 9             s=s
10         elif s[0] == '0'and x>0:
11             for i in range(1,len(s),1):  #s[1]开始遍历,除去0   
12                 re.append(s[i])
13             s = ''.join(re)
14         else :    
15             re.append('-')
16             for i in range(0,len(s)-1,1):  #s[0]遍历到s[n-1],除去末尾'-'
17                 re.append(s[i])
18             s = ''.join(re)
19         s = int(s)    
20         if -2**31 <= s <= 2**31-1:
21             return s
22         else:
23             return 0

总结:题目需要注意的小点比较多,细心一点,看清要求以及规定好的范围,把每个需要考虑到的点都考虑到

 

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-integer

posted @ 2022-01-22 22:39  TY_uni  阅读(60)  评论(2)    收藏  举报