
7 整数反转
一、题目
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
- 示例 1:
输入: 123
输出: 321
- 示例 2:
输入: -123
输出: -321
- 示例 3:
输入: 120
输出: 21
- 注意:
假设我们的环境只能存储得下32
位的有符号整数,则其数值范围为[−2^31, 2^31 − 1]
。请根据这个假设,如果反转后整数溢出那么就返回0
。
二、Python3程序
- 知识点:数学
# -*- coding:utf-8 -*-
# &Author AnFany
# 7_Reverse_Integer 整数反转
class Solution:
def __init__(self):
self.max_num = 2 ** 31 - 1
self.min_num = - 2 ** 31
def reverse(self, x: int) -> int:
# 反转不利用字符串的反转,利用%不断获取最后一位数字
# 分负,非负2种情况
if x < 0:
new_num = '-' # 负数情况
x = -x
elif x == 0: # 等于0的情况
new_num = 0
else:
new_num = ''
# 开始反转
while x != 0:
new_num += str(x % 10)
x //= 10
# 判断是否在区间内
if self.min_num <= int(new_num) <= self.max_num:
return int(new_num)
else:
return 0
点击获得更多编程练习题。欢迎Follow,感谢Star!!! 扫描关注微信公众号pythonfan,获取更多。
网友评论