思路一(js语法糖版)
(基本就算是js语法糖了)
将数字x使用toString()转换为字符串,再使用split()转换为数组,再使用reverse()将数组翻转,再使用join()将数组转换为字符串,最后使用parseInt()将字符串转为整数。
代码
/**
* @param {number} x
* @return {number}
*/
var reverse = function(x) {
var flag;
if (x >= 0) {
flag = 1;
} else {
flag = -1;
x = -x;
}
var revx = x.toString().split('').reverse().join('');
revx = flag * parseInt(revx);
if (revx > Math.pow(2, 31) - 1 || revx < -Math.pow(2, 31)) return 0;
return revx;
};
思路二(常规思路版)
不断将数字取余,然后不断累加。但是你会发现,js这里还是存储了32位以上的整数。官方js版答案也没有去判断。(毕竟js对类型处理弱化了)
代码
/**
* @param {number} x
* @return {number}
*/
var reverse = function(x) {
var revx = 0;
while (x != 0) {
revx = revx * 10 + x % 10;
x = parseInt(x / 10);
if (revx > Math.pow(2, 31) - 1 || revx < -Math.pow(2, 31)) return 0;
}
return revx;
}