这个题的目的就是把这个有符号的整数反转过来,并且规定了是在32的环境下,就意味着这是一个有范围,
所以先把这个范围找出来,然后就是来反转这个数。
反转的方法有两种,最简单的就是调用js的方法,为了去除负数的影响,我们先将此数转换位正数,我们记得Array中有一个reverse方法,所以先把这个字符转化位一个数组,我们可以使用split('')的方法,返回的结果就是我们想要的数组,随后反转,随后再连接成字符串join('');我们本来要把它转化为数字,使用paeseInt的方法,但是在写的过程中发现有一个类型转化,所以结果就出来了。
var reverseInteger = (digital) => {
let maxValue = Math.pow(2, 31) - 1, minValue = -Math.pow(2, 31);
let res = digital >= 0 ? String(digital).split('').reverse().join('') : String(digital).slice(1).split('').reverse().join('');
if (res >= minValue && res < maxValue) return digital > 0 ? res : res * -1; // 这个地方发生的类型转化
return 0;
};
console.log(reverseInteger(123));
第二种思路是利用数学的方法,因为反转本质上是从最后一个位置开始遍历,那么我们先/10,然后再重新*10加起来。