【LeetCode13】整数反转

时间:2022-06-25
本文章向大家介绍【LeetCode13】整数反转,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
今日挑战

给出一个 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