/**
* @param {number} x
* @return {number}
*/
var reverse = function(x) {
let MAX = Math.pow(2, 31);
let sign = Math.sign(x);
let result = (Math.abs(x) + '').split('').reverse().join('') * sign;
return result > MAX - 1 || result < -MAX ? 0 : result;
};
题目 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例1
示例2
示例3
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
思路 这道算法比较简单,但是有两个点需要特别注意:第一,就是正负号的不变性;第二,就是判断反转后的值是否在有效值范围内。 核心思想就是利用字符串的
split()
方法,拆解字符串,分别利用数组的反转方法reverse()
以及数组项合并为字符串的方法join()
来达到最终目的。其实,这个解法在运行时间以及内存消耗两个方面并不是很理想,还需要探索更优解。
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/reverse-integer