leetcode7:反转整数

给定一个 32 位有符号整数,将整数中的数字进行反转。

示例 1:

输入: 123
输出: 321

 示例 2:

输入: -123
输出: -321

示例 3:

输入: 120
输出: 21

注意:

假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−2^31,  2^31 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。

我的思路:

参考了网上的思路。先将整数转换成字符串,然后对字符串去反(创建一个空字符串,对原来的字符串倒序遍历,使用'a'+'b'='ab'的方式得到新的字符串。)

将反转后的字符串转换成整数。如果该整数大于2^31-1,则输出0. 否则: 原来的整数大于0则直接输出,小于0则加上负号输出。

 1 class Solution:
 2     def reverse(self, x):
 3         """
 4         :type x: int  
 5         :rtype: int
 6         """
 7         y=str(abs(x))       
 8         n=len(y)
 9         l=''     #创建空字符串存放反转后的字符串
10         for i in  reversed(range(n)): #反转字符串存入l
11             l=l+y[i]
12         if int(l)>(2**31-1):
13             return 0
14         else:
15             if x>=0:
16                 return int(l)
17             else:
18                 return -int(l)
19         
20 solution = Solution()
21 solution.reverse(451)

得到:

猜你喜欢

转载自www.cnblogs.com/gaowanru/p/9214986.html