题目
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
- 使用python解答主要思路还是转字符串然后切片反转
具体代码如下:
def reverse( x):
"""
:type x: int
:rtype: int
"""
if x == 0:
return 0
str_x = str(x) # 将int型数字转成字符串
x = '' # 设一个空字符串
if str_x[0] == '-': # 判断该数字是否为负数
x += '-' # 如果是负数 让x保存负号 如果不是负数x字符串就还是空的
x += str_x[len(str_x) - 1::-1].lstrip("0").rstrip("-")
# 使用切片反转字符串后用lstrip去除字符串开头的0,使用rstrip去除字符串末尾的负号
# 再和x加到一起
x = int(x) # 将字符串转成int型
if -2 ** 31 < x < 2 ** 31 - 1: # 最后判断32位字符超限,如果超限返回0
return x
return 0