[Leetcode Series]07 整数反转

Arthur
2021-07-21 / 0 评论 / 80 阅读 / 正在检测是否收录...

7. 整数反转

` 来源leetcode

  • 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。

  • 如果反转后整数超过 32 位的有符号整数的范围 [−23^1,  23^1 − 1] ,就返回 0。

  • 假设环境不允许存储 64 位整数(有符号或无符号)。

示例 1:

输入:x = 123
输出:321

示例 2:

输入:x = -123
输出:-321

示例 3:

输入:x = 120
输出:21

示例 4:

输入:x = 0
输出:0

 

解题

第一思路是 首先是0的直接返回0
然后判断正负 保存起来
然后取x的绝对值 转成字符串 切割成数组,,然后使数组倒序,
重新拼成新的字符串
再和之前的正负转成number
最后判断值是否正确的区间

代码

    /**
     * @param {number} x
     * @return {number}
     */
    var reverse = function (x) {
        // debugger
        if (x == 0) {
            return 0
        }
        let a = (x > 0) ? 1 : -1
        let res = ''
        x = Math.abs(x).toString().split('').reverse()
        for (i = 0; i < x.length; i++) {
            res += x[i]
        }
        res = res * a
        if ((res < (-2) ** 31) || (res > ((2 ** 31) - 1))) {
            return 0
        }
        return res
    };

一次通过

执行用时: 72 ms , 在所有 JavaScript 提交中击败了 99.64% 的用户
内存消耗: 39.5 MB , 在所有 JavaScript 提交中击败了33.96%的用户

1
如果你觉得文章还不错,可以请我喝杯咖啡啊哈哈哈
wechat alipay

评论 (0)

取消