題目解析
給出一個 32 位的有符號整數(shù)需忿,你需要將這個整數(shù)中每位上的數(shù)字進行反轉(zhuǎn)诅炉。
- 首先我們知道題目給了我們一個整數(shù),我們分析一下意思屋厘,系統(tǒng)想讓我們將一個數(shù)反轉(zhuǎn)過來涕烧,且反轉(zhuǎn)過來的數(shù)值范圍為[?2^31/, 2^31 ? 1]。
解題思路
- 首先我們可以創(chuàng)建一個數(shù)組汗洒,把傳入的數(shù)字轉(zhuǎn)換成字符串的形式议纯,在轉(zhuǎn)換成數(shù)組的形式存儲起來。
- 然后循環(huán)遍歷這個數(shù)組仲翎,如果這個數(shù)傳入進來的時候是負數(shù)痹扇,那我們就少遍歷一次。把這些數(shù)倒序相加起來溯香。最后將數(shù)組的第0項添加到最前面鲫构。反之,我們就全部遍歷玫坛。
- 之后我們就可以將這個數(shù)轉(zhuǎn)換為數(shù)字類型结笨,同時清除轉(zhuǎn)換之后開始為0的情況。
- 最后我們用3元運算判斷這個數(shù)的范圍。再將這個數(shù)返回即可炕吸。
完整代碼
var reverse = function(x) {
var new_arr = [];
var str = "";
new_arr = x.toString().split("");
if(x<0){
for(var i = new_arr.length-1 ; i>0 ; i--){
str += new_arr[i];
}
str = new_arr[0]+str;
}else{
for(var i = new_arr.length-1 ; i>-1 ; i--){
str += new_arr[i];
}
}
str = parseInt(str);
str = str > Math.pow(2,31)-1 || -Math.pow(2,31) > str ? 0 :str;
return str;
};