看到题目之后的第一反应是直接将数字转换成字符串,然后反转,最后再将字符串变成integer;但是这样刚开始的时候一直报错,因为边界溢出的问题,最后看到需要添加一个判断语句,处理溢出情况(也就是return前面的那一句。)
var reverse = function(x) {
str=x.toString();res=new Array();
n=0;
for(i=str.length-1;i>=0;i--){
res[n++]=str.charAt(i);
}
if(str.charAt(0)=='-'){
temp=res[n-1];
for(i=n-2;i>=0;i--){
res[i+1]=res[i];
}
res[0]=temp;
}
res=Number(res.join(""));
if(res>Math.pow(2,31)||-res>Math.pow(2,31)) res=0;
return res;
};
但是这样做显然是显得很复杂的,网上搜到的另一种最普遍的方法,对于数的反转: reverseNum=reverseNum*10+x%10; x=x/10;