LeetCode 7. Reverse Integer Python3
Description
点击查看题目
Given a 32-bit signed integer, reverse digits of an integer.
Example 1:
Input: 123
Output: 321
Example 2:
Input: -123
Output: -321
Example 3:
Input: 120
Output: 21
Note:
Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−2 31, 2 31 − 1]. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.问题分析
本题是一道简单题,题目的意思是给定一个整数,返回反转后的整数。看了题目给出的例子后,发现和字符串反转不太一样,多了几点需要考虑的地方。
1.负数反转后还是负数
2.如果一个数以0结尾,反转后需要把前面的0去掉
3.如果一个数反转后超出了int的范围,返回0
考虑到了这三点,剩下的就很简单了。
代码实现
import math
class Solution:
def reverse(self, x: int) -> int:
if x == 0:
return x
flag = False
if x < 0:
flag = True
x = abs(x)
temp = str(x)
temp = temp[::-1]
while temp.startswith("0"):
temp = temp[1:]
if flag:
temp = "-" + temp
if int(temp) < math.pow(-2, 31) or int(temp) > math.pow(2, 31) - 1:
return 0
return int(temp)
运行结果
ok!大功告成了,如果你有其他的方法或者问题,欢迎在评论区交流。