这其实不算一道中等题,反转整数,一个简单的想法就是当作字符串来处理,来进行反转即可,没有啥陷阱。
后续可以考虑使用双指针的思路,再优化一下代码
/**
* 还可以优化一下代码
* @param {number} x
* @return {number}
*/
var reverse = function(x) {
if(x === 0) {
return 0
}
const xStr = new String(x)
let result = ''
for (let i = xStr.length - 1; i >= 1; i--) {
result += xStr.charAt(i)
}
if (result || xStr.length >= 1) {
if (xStr.charAt(0) === '-' || xStr.charAt(0) === '+') {
result = xStr.charAt(0) + result
} else {
result += xStr.charAt(0)
}
if (+result >(Math.pow(2, 31) -1) || +result < Math.pow(-2, 31)) {
return 0
}
return +result
} else {
return 0
}
};