/** * @param {number}x * @return {number} */ var reverse = function (x) { let str = String(Math.abs(x)); let len = str.length; let result = ""; if (x < 0) { result = "-"; } for (let i = 0; i < len; i++) { result += str[len - i - 1]; } let b = Number(result); if (b <= 2147483647 && b >= -2147483648) { return b; } else { return0; } };
方法二:
1 2 3 4 5 6 7 8 9 10 11
var reverse = function (x) { let n = 0; while (x !== 0) { n = n * 10 + (x % 10); x = ~~(x / 10); } if (n > 2 ** 31 - 1 && n < -(2 ** 31)) { return0; } return n; };
方法三:
1 2 3 4 5 6 7 8 9 10 11 12 13
var reverse = function (x) { let point = x >= 0 ? 1 : -1; let absNumString = String(Math.abs(x)); let result = Array.prototype.reduceRight.call(absNumString, (a, b) => { return a + b; }) * point; if (result >= -(2 ** 31) && result <= 2 ** 31 - 1) { return result; } else { return0; } };