leetcode7 Reverse Integer
# 7. 整数反转 (opens new window)
English Version (opens new window)
# 题目描述
给你一个 32 位的有符号整数 x
,返回将 x
中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1]
,就返回 0。
示例 1:
输入:x = 123 输出:321
示例 2:
输入:x = -123 输出:-321
示例 3:
输入:x = 120 输出:21
示例 4:
输入:x = 0 输出:0
提示:
-231 <= x <= 231 - 1
# 解法
# Python3
转字符串,进行翻转。
class Solution:
def reverse(self, x: int) -> int:
y = int(str(abs(x))[::-1])
res = -y if x < 0 else y
return 0 if res < -2**31 or res > 2**31 -1 else res
1
2
3
4
5
2
3
4
5
# Java
class Solution {
public int reverse(int x) {
long res = 0;
// 考虑负数情况,所以这里条件为: x != 0
while (x != 0) {
res = res * 10 + (x % 10);
x /= 10;
}
return res < Integer.MIN_VALUE || res > Integer.MAX_VALUE ? 0 : (int) res;
}
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# C++
class Solution {
public:
int reverse(int x) {
long long ans = 0;
while (x) {
ans = ans * 10 + x % 10;
x /= 10;
}
return ans < INT_MIN || ans > INT_MAX ? 0 : ans;
}
};
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# JavaScript
/**
* @param {number} x
* @return {number}
*/
var reverse = function (x) {
let res = 0;
while (x) {
res = res * 10 + (x % 10);
x = ~~(x / 10);
}
return res < Math.pow(-2, 31) || res > Math.pow(2, 31) - 1 ? 0 : res;
};
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# ...
1
编辑 (opens new window)
上次更新: 2021/10/30, 12:58:38