7-->>python3

给定一个 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

猜你喜欢

转载自www.cnblogs.com/baiqingm/p/9226001.html
今日推荐