算法題-整數反轉

描述

給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。
注意:
假設我們的環境只能存儲得下 32 位的有符號整數,則其數值範圍爲 [−231,  231 − 1]。請根據這個假設,如果反轉後整數溢出那麼就返回 0。

示例1

輸入: 123
輸出: 321

示例2

輸入: -123
輸出: -321

示例3

輸入: 120
輸出: 21

解答

var reverse = function(x) {
    if (x < 0) {
        var flag = true
        x = -x
    }
    let a = 0
    while (x !== 0) {
        a = a * 10 + x % 10
        x = parseInt(x / 10)
    }
    if (a > Math.pow(2, 31) - 1 || a < -Math.pow(2, 31)) {
        return 0
    }
    return flag ? -a : a
};

分析

時間複雜度:O(n)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章