LeetCode刷题(0009)---7. 整数反转
程序员文章站
2024-03-09 15:03:07
...
目录
LeetCode—7. 整数反转
01题目描述:
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
02题目分析:
这一个题目首先,我们注意的是**有符号数!!**则其数值范围为 [−231, 231 − 1]
所以我们要做正数和负数的处理。方式有一点是一样的,那就是无论整数负数的解决方式是一样的,唯一不一样的就是这一个正负号的问题。
所以我的处理方式,是用abs()
把负数全部变成整数去处理,并且标记出负数,最后计算之后,再在对应的负数前面加上符号-
负号即可。
03解答:
方法一、
class Solution:
def reverse(self, x: int) -> int:
# 方法一
x_str = str(abs(x))
list1 = [item for item in x_str]
sum = 0
for index,item in enumerate(list1):
sum += int(item)*(pow(10,index))
if not -pow(2,31)<=sum<=pow(2,31)-1:
sum = 0
# print(sum)
if x>=0:
return sum
else:
return -sum
# return sum if x>0 else -sum
方法二:
class Solution:
def reverse(self, x: int) -> int:
# 方法二
x_str = str(abs(x))
list1 = x_str[::-1]
if not -pow(2,31)<= (int(str(list1)) or -int(str(list1)) ) <=pow(2,31)-1:
return 0
if x>=0:
return int(str(list1))
else:
return -int(str(list1))
# return int(str(list1)) if x>0 else -int(str(list1))
3.1.方法1运行结果:
3.1.方法1耗时分布情况
3.1.方法1内存使用情况
3.2.方法2运行结果:
3.2方法2耗时分布情况
3.2.方法2内存使用情况
04结语:
个人记录,新手入门,多多学习,欢迎大家交流探讨!
个人网站: http://106.54.78.238/
song_of _sea的个人网站 http://106.54.78.238/