算法很简单 主要考虑的是题目溢出问题和100这类的解决方案。
有点小忘负数的二进制表达方法 于是复习了一下反码补码
32位有符号整数
最小
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;
};
网友评论