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