声明
今天做了第2个简单题,这是狗生完整刷完的第2道LeetCode题,虽然借鉴了别人的思路,没有完整自己做出来,但是,啊!在此记录一下~
题目
给定一个 32 位有符号整数,将整数中的数字进行反转。
eg1.输入-输出:123 -> 321
eg2.输入-输出:-123 -> -321
eg3.输入-输出:120 -> 21
正文
主要思路是2种。第一种是拆解成字符串处理,第二种是将整数不断除10向下取整得到余数,再乘以10达到逆转整数的目的。以下解法1、2属于第一种,解法3、4属于第二种,文末附上了参考的其他博客链接,侵删哦。
解法1。先取绝对值再强制转换成string,再把string[::-1]逆序输出后强制转换为int得到结果,在根据该整数正负决定返回结果前要不要加负号。
# V 1.0 执行成功
class Solution:
def reverse(self, x):
x_string = str(abs(x))
if x < 2**31:
rev_x = int(x_string[::-1])
if x > 0:
return rev_x
else:
return -rev_x
解法2。根据整数正负分开处理,正数直接逆序输出后转换,负数取负号之后的数字逆序输出后转换并在结果上加负号,