算法很簡(jiǎn)單 主要考慮的是題目溢出問(wèn)題和100這類的解決方案。
有點(diǎn)小忘負(fù)數(shù)的二進(jìn)制表達(dá)方法 于是復(fù)習(xí)了一下反碼補(bǔ)碼
32位有符號(hào)整數(shù)
最小
1000 0000 0000 0000 0000 0000 0000 0000 = -2147483648
最大
0111 1111 1111 1111 1111 1111 1111 1111 = 2147483647
/**
* @param {number} x
* @return {number}
*/
var reverse = function(x) {
var s = 0,MAX = 2147483647,MIN = -2147483648,flag = 1;
if(x < 0) {
x = -x;
flag = -1;
}
while(x > 0) {
s = s * 10 + x % 10;
x = parseInt(x / 10);
}
if(s > MAX || s < MIN) {
s = 0;
}
s = s*flag;
return s;
};