题目:
给你一个 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)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
