LeetCode算法--反转整数

题目:给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231,  231 − 1] ,就返回 0。

解析:分析题目中的点。

  • 整数,可以是正数,也可以是负数,这里需要注意负号;
  • 反转后的结果有范围,注意范围,越界返回是0.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var reserve = (x) => {
if (!x) return x
let neg = x > 0 ? 1 : -1
let str = ''
x *= neg
while (x > 0) {
str += x % 10
x = parseInt(x / 10)
}
if (str <= -2147483648
|| str >= 2147483647) {
str = 0
}
return str * neg
}
reserve(123)
// 321
reserve(-321)
// -123
reserve(2147483648)
// 0

注意:这里应该有一个优化的地方,就是越界的比较,其实并不需要比较231次方。

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2015-2022 Lee
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信