解法一
js
/**
* @param {number} x
* @return {number}
*/
var reverse = function (x) {
const MAX_VALUE = 2 ** 31 - 1
const MIN_VALUE = -(2 ** 31)
const signal = x < 0 ? -1 : 1
const newX = Math.abs(x) + ''
let result = newX.split('').reverse().join('')
if (result > MAX_VALUE || result < MIN_VALUE) {
return 0
}
return signal * result
}
解法二
js
/**
* @param {number} x
* @return {number}
*/
var reverse = function (x) {
let res = 0
while (x) {
res = res * 10 + (x % 10)
if (res > Math.pow(2, 31) - 1 || res < Math.pow(-2, 31)) return 0
x = ~~(x / 10)
}
return res
}