标签:转换 eve ring turn 输入 存储 function split 假设
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
注意:
假设我们的环境只能存储得下 32 位的有符号整数,
则其数值范围为 [−2^31, 2^31 − 1]。请根据这个假设,
如果反转后整数溢出那么就返回 0。
解决方法:
1. 将原数字x转换为字符串后,拆分为数组
2. 交换 i 和 len - i - 1位置的数字
3. join 新的数组,在转化为数字
4. 加入原数字x的符号
5. 判断转化后的数字是否溢出范围
代码如下
1 var reverse = function(x) { 2 var nums = Math.abs(x).toString().split(‘‘) 3 var len = nums.length 4 5 var flag = 1 6 7 var temp = null 8 9 for (var i = 0, j = Math.floor(len / 2); i < j; i++) { 10 temp = nums[i] 11 nums[i] = nums[len - i - 1] 12 nums[len - i - 1] = temp 13 } 14 15 if (x < 0) { 16 flag = -1 17 } 18 19 20 var result = +(nums.join(‘‘)) * flag 21 22 if (Math.pow(-2, 31) <= result && result < Math.pow(2, 31)) { 23 return result 24 } else { 25 return 0 26 } 27 };
同理解决方案,344-反转字符串
标签:转换 eve ring turn 输入 存储 function split 假设
原文地址:https://www.cnblogs.com/jacky-jyk/p/10584114.html