0%

LeetCode-7:整数反转

给出一个 32 位有符号整数,你需要将这个整数中每位上的数字进行反转。

题目来源

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/reverse-integer

示例1:

输入:123

输出:321

示例2:

输入:-123

输出:-321

示例3:

输入: 120

输出: 21

解题思路

暴力

对于一个有符号整数,我们可以通过先从个位数获取,个位数是反转后的最高位,前面 / 10 , 后面就 * 10 。

7

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public class Reverse {


public static void main(String[] args) {
System.out.println(reverse(-230));
}
public static int reverse(int x) {

return reverse(x, 0);
}

public static int reverse(int num, int result) {

if (num == 0) {
return result;
}
int res = num / 10;
int single = num % 10;

// 官方提供的题解中的溢出的处理
if (result > Integer.MAX_VALUE / 10 || (result == Integer.MAX_VALUE / 10 && single > 7)) {
return 0;
}
if (result < Integer.MIN_VALUE / 10 || (result == Integer.MIN_VALUE / 10 && single < -8)) {
return 0;
}
result = result * 10 + single;
return reverse(res, result);
}
}
这是打赏的地方...

本文标题:LeetCode-7:整数反转

文章作者:Mr.Sun

发布时间:2020年01月03日 - 16:17:17

最后更新:2020年06月10日 - 10:01:45

原始链接:http://www.blog.sun-iot.xyz/posts/ef2169dd

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

---------Thanks for your attention---------