给定一个 32 位有符号整数,将整数中的数字进行反转。
示例 1:
输入: 123 输出: 321
示例 2:
输入: -123 输出: -321
示例 3:
输入: 120 输出: 21
注意:
假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。
思路:要求反转一个整数,很容易想到的就是对该数除以10取余进行反转,再对是否越界及正负性进行判断。
此题我用了python中的切片方法,该方法的使用对象是字符串,所以呢,我们首先要把输入的整数x通过str()转化为字符串,然后对字符串进行
切片操作,再对其使用int()方法转化为整数,即可得到答案。这是大体思路,现在我们解决符号问题,只需要对输入的数字进行abs()取绝对值,
最后直接根据x的正负性选择是否输出负号;越界问题只需要最后加个判断即可。
1 class Solution: 2 def reverse(self, x): 3 """ 4 :type x: int 5 :rtype: int 6 """ 7 temp1=abs(x) 8 temp2=str(temp1) 9 temp3=int (temp2[::-1]) 10 if temp1<2**31 and temp3<2**31: 11 if x<0: 12 return -temp3 13 else: 14 return temp3 15 else : 16 return 0