js解法1取模
解题思路
1.result * 10 + x % 10 取出末位 x % 10(负数结果还是负数,无需关心正负),拼接到 result 中。
2.x / 10 去除末位,| 0 强制转换为32位有符号整数。
3.通过 | 0 取整,无论正负,只移除小数点部分(正数向下取整,负数向上取整)。
4.result | 0 超过32位的整数转换结果不等于自身,可用作溢出判断。
/**
* @param {number} x
* @return {number}
*/
var reverse = function(x) {
let res = 0;
while(x!==0){
res = res * 10 + x % 10;
x = x / 10 | 0;
}
return (res | 0) === res ? res : 0;
};
js解法2 暴力解
/**
* @param {number} x
* @return {number}
*/
var reverse = function(x) {
let now = Math.abs(x).toString().split("").reverse().join("");
if(x < 0){
return now <= Math.pow(2,31) ? -now : 0;
}else{
return now < Math.pow(2,31) ? now : 0;
}
};