? 温故而知新
? 今日挑战
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123输出: 321
示例 2:
输入: -123输出: -321
示例 3:
输入: 120输出: 21
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
先思考一下,后面我会给出一个解题思路~?
图来自网络
这道题主要考察的是数字反转以及边界处理,而我们可能对字符串的反转更加熟悉,所以我们可以先把数字转出字符串,主要思路如下:
1 )用flag记录下数字的符号,并将数字取绝对值,使用str转换为字符串;
2 )利用str[::-1]对字符串进行反转,并用int转回数字,乘以flag得到结果;
3 )做好结果的边界处理,如果溢出,返回0。
Python实现:
def reverse(x):
flag = -1 if x < 0 else 1
res = flag * int(str(abs(x))[::-1])
return res if (-2**31)<=res<=(2**31-1) else 0
? 配图角色背景介绍
珍妮特·范·戴因(Janet Van Dyne)出生于美国的新泽西州。因为父亲维农·范·戴因(Vernon Van Dyne)博士的成功,她曾经是一个骄纵、自我中心的大小姐。但在维农博士某次失败的实验中,从维农博士所开启的异次元通道冲出的凶狠魔物杀了他。珍妮特逃离了魔物的追击,并向其父亲的好友蚁人(汉克·皮姆)求救。后者为了帮助她而利用生物工程帮珍妮特植入了黄蜂的翅膀,同时给了她可以操作身体大小的"皮姆粒子"。珍妮特跟亨利最后成功地将魔物送回了其所属的次元,从此之后,珍妮特就作为汉克的助手跟他一起行动。