给定一个 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)
得到: