给定一个32位有符号整数,将整数中的数字进行反转。
示例1:
输入: 123
输出: 321
示例2:
输入: -123
输出: -321
示例3:
输入: 120
输出: 21
注意:
假设我们的环境只能存储32位有符号整数,其数值范围是[-2^31, 2^32-1]。根据这个假设,如果反转后的整数溢出,则返回0。
反转的题自然想到了python的切片功能,所以我先把整型转化为str了,然后利用切片来做。
strx[::-1]表示strx[start_index : end_index : step],其中start_index表示起始索引,end_index表示结束索引;step表示步长,默认值是1,-1是反向。
还需要考虑一个正负数的问题,以及是否溢出的问题,其他貌似就没什么了。
class Solution:
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
strx = str(x)
if strx[0] == '-':
strx = strx[len(strx)-1:0:-1]
if int(strx) < 2 ** 31-1:
return(-int(strx))
else:
return(0)
else:
strx = strx[::-1]
if int(strx) < 2 ** 31-1:
return(int(strx))
else:
return(0)
当然,也可以用strx[::-1][:-1]表示,相当于切了两次。