# 【LeetCode题解---007】 Reverse Integer

1

Given a 32-bit signed integer, reverse digits of an integer.

Example 1:

`Input: 123Output: 321`

Example 2:

`Input: -123Output: -321`

Example 3:

`Input: 120Output: 21`

Note: Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−231, 231 − 1]. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.

2

`environment` 环境 `purpose` 目的

3

4

01

```public static int reverse(int x) {
String temp;
// 是否负数
boolean isNegativeNumber = false;
if (x == 0) {
return x;
}
// 数值越界
if (x == Integer.MIN_VALUE || x == Integer.MAX_VALUE) {
return 0;
}
if (x < 0) {
// 负数
isNegativeNumber = true;
x = -x;
}
// 正数
temp = String.valueOf(x);
StringBuilder resultStr = new StringBuilder(temp).reverse();
if (isNegativeNumber) {
temp = "-" + resultStr.toString();
} else {
temp = resultStr.toString();
}
Long res = Long.parseLong(temp);
return (res > Integer.MAX_VALUE || res < Integer.MIN_VALUE) ? 0 : Integer.parseInt(res.toString());
}```

02

```public static int reverse_2(int x) {
Long result = 0L;
while (x != 0) {
// 通过不断取余数的方式得到该值得最后一位数字
result = result * 10 + x % 10;
// 不断取整的方式缩小这个目标数字
x /= 10;
}
return (result > Integer.MAX_VALUE || result < Integer.MIN_VALUE) ? 0 : Integer.parseInt(result.toString());
}```

5

01

```class Solution(object):
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
flag = 1 if x >= 0 else -1
new_x, x = 0, abs(x)
while x:
new_x = 10 * new_x + x % 10
x /= 10
new_x = flag * new_x
return new_x if new_x < 2147483648 and new_x >= -2147483648 else 0```

02

```class Solution(object):
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
x = int(str(x)[::-1]) if x >= 0 else - int(str(-x)[::-1])
return x if x < 2147483648 and x >= -2147483648 else 0```

Github地址：https://github.com/Bylant/LeetCode

0 条评论

• ### 从一道面试题探究 Integer 的实现

当时心里一惊，这是把我当小白了呀！交换两个数的值还不容易么，最简单的直接搞一个中间变量，然后就可以交换了… …

• ### 【数据分析】盘点五一期间最受欢迎的几个景区

五一假期已经结束，小伙伴是不是都还没有玩过瘾？但是没办法，还有很多bug等着我们去写，同样还有需要money需要我们去赚。为了生活总的拼搏。

• ### 【码出高效】为了避免代码不规范被打死，赶紧来看看吧！

据外媒报道，来自美国的一名程序员因同事不写注释，不遵循驼峰命名，括号换行，最主要还天天git push -f 等因素枪击了4名同事，导致一人情况危急。

• ### 5 spark入门键值对foldByKey

可以看到，第一个参数是zeroValue，这个就是用来对原始的V做合并操作的，后面的参数是一个JFunction操作。

• ### java计算集合对称差

两个集合的对称差是只属于其中一个集合，而不属于另一个集合的元素组成的集合。 集合A和B的对称差通常表示为AΔB，对称差的符号在有些图论书籍中也使用符号⊕来表示。...

• ### 写让别人能读懂的代码

写让别人能读懂的代码 随着软件行业的不断发展，历史遗留的程序越来越多，代码的维护成本越来越大，甚至大于开发成本。而新功能的开发又常常依赖于旧代码，阅读旧代码所花...

• ### 要不要迎合用户的口味

今天有人给我留言，大意是说他微信里都是Whatsapp被巨资收购的消息，这么大件事你怎么都不谈啊？还在这扯什么敏捷？ 我为什么要谈？一来我不熟，二来我也谈不出个...

• ### php随机数怎么获取?一个简单的函数就能生成

小美女建了一个站，有些页面相似度比较高，想添加一些字段来实现差异化，比如用php随机数生成从10到100之间随机一个数字。其实会php的朋友几十个字符就能实...

• ### 机器学习之K近邻算法

---- 概述 AI不断的火起来了，作为工程化的码农，也得奔向国际化轨道了。至于机器学习是什么，不知道找百科。现在大多数机器学习都是采用监督学习形式。我们学习一...