JavaScript:整数反转
题目:
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
示例 1: 输入:x = 123 输出:321 示例 2: 输入:x = -123 输出:-321 示例 3: 输入:x = 120 输出:21 示例 4: 输入:x = 0 输出:0
提示:
-231 <= x <= 231 - 1
方法一:
var reverse = function(x) { var str= x.toString(); //转成字符串 var arrStr = str.split(''); //分割成数组 if(arrStr[0] !== '-'){ let num=Number(arrStr.reverse().join('')) // 翻转数组-》转成字符串-》转成数字 if(num <= 2147483647 && num >= -2147483648){ return num }else{ return 0 } }else if(arrStr[0] === '-'){ delete arrStr[0]; //删除第一位负号 let num = Number( arrStr.reverse().join('')); //翻转数组-》转成字符串-》转成数字 if(num <= 2147483647 && num >= -2147483648){ return -num //增加负号 }else{ return 0 } } };
方法二:
var reverse = function(x) { var str= x.toString(); var arrStr = str.split(''); if(arrStr[0] !== '-'){ let num=Number(arrStr.reverse().join('')) if(num <= 2147483647 && num >= -2147483648){ return num }else{ return 0 } }else if(arrStr[0] === '-'){ delete arrStr[0]; let num = Number( arrStr.reverse().join('')) if(num <= 2147483647 && num >= -2147483648){ return ~num+1 // '~'对数字取反,取反后需要加1 }else{ return 0 } } };
作者:wang-yi-dong
链接:https://leetcode-cn.com/problems/reverse-integer/solution/zheng-shu-fan-zhuan-by-wang-yi-dong-rcyi/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。