不说话,装高手。
Maintain silence and pretend to be an experta
将数字转成字符串再拆成数组,通过数组的 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
};