创新编码

不说话,装高手。

Maintain silence and pretend to be an experta

CodeTop100-简单-整数反转

2024-09-02 18:02:51算法

字符串反转

将数字转成字符串再拆成数组,通过数组的 reverse 方法反转,再用 join 方法组装,通过 parseInt 方法转成数字。判断原来数字是否小于0,再加上符号,最后边界判断一下

折叠代码 复制代码
/**
 * @param {number} x
 * @return {number}
 */
var reverse = function(x) {
    const str = Math.abs(x).toString().split("").reverse().join('')
    let newNum = parseInt(str)
    if(x < 0) {
        newNum = -newNum
    }

    return newNum < Math.pow(-2, 31) || newNum > Math.pow(2, 31) - 1 ? 0 : newNum
};

数学计算方式

while 做循环判断 x 不等于 0 时,对 x 取余得到最后一位数字 remain,将 res 乘 10 + remain,这样可以把 remain 放到 res 的个位上,x 除以 10 再取整,最后判断边界返回

折叠代码 复制代码
/**
 * @param {number} x
 * @return {number}
 */
var reverse = function (x) {
    let res = 0

    while (x) {
        let remain = x % 10

        res = res * 10 + remain
        x = ~~(x / 10);
    }

    return res < -(2 ** 31) || res > (2 ** 31 - 1) ? 0 : res
};