1. 程式人生 > >LeetCode javascript解題心得 第7題 反轉整數

LeetCode javascript解題心得 第7題 反轉整數

題目如下

給定一個 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;                         判斷正負調整輸出
};

此題終結