題目:
給你一個 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)
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。