LeetCode javascript解題心得 第7題 反轉整數
阿新 • • 發佈:2018-12-26
題目如下
給定一個 32 位有符號整數,將整數中的數字進行反轉。
輸入: 123 輸出: 321
解題思路:
之前的思路是想把單個數字逐一跳出來存放到陣列中再重新排列,但是這種演算法無論是時間複雜度還是空間複雜度都很糟糕,這裡介紹一種便讀取邊拼接的演算法。。
var reverse = function(x) {
var abs=x>0?x:-x; 首先,因為負號不能夠讀入進行處理,所以在讀取的時候加以處理
var reverse=0;
while(abs>0){
reverse=reverse*10+abs%10; 取餘10獲取最低位,reverse將之前陣列乘以10也就是左移一位,那麼就實現了
abs=Math.floor(abs/10); Math.floor這個函式是去除小數部分,每當讀取最低位就去掉
}
if(reverse>=2147483647 || x===0){ 這個判斷是因為我們們的環境只能儲存 32 位有符號整數,之前沒有加,就錯了。
return 0;
}
return x>0?reverse:-reverse; 判斷正負調整輸出
};
此題終結