leetcode:整數(shù)反轉(zhuǎn)

題目

作者:gpe3DBjDS1
鏈接:https://leetcode-cn.com/problems/reverse-integer/
來源:力扣(LeetCode)

給出一個 32 位的有符號整數(shù),你需要將這個整數(shù)中每位上的數(shù)字進(jìn)行反轉(zhuǎn)。

示例 1:
輸入: 123
輸出: 321

示例 2:
輸入: -123
輸出: -321

示例 3:
輸入: 120
輸出: 21

注意:
假設(shè)我們的環(huán)境只能存儲得下 32 位的有符號整數(shù),則其數(shù)值范圍為 [?231, 231 ? 1]。請根據(jù)這個假設(shè),如果反轉(zhuǎn)后整數(shù)溢出那么就返回 0

解法

  • 方法1
func reverse(x int) int {
    tmp := make([]int, 0)
    var result, a int
    var flag bool

    if x < 0 {
        x = int(math.Abs(float64(x)))
        flag = true
    }

    for x > 0 {
        a = x / 10
        value := x % 10

        if value > 0 {
            tmp = append(tmp, value)
        } else {
            if len(tmp) != 0 {
                tmp = append(tmp, value)
            }
        }

        x = a
    }

    length := len(tmp)

    for index, value := range tmp {
        powValue := math.Pow10(length - index - 1)
        i := int(powValue)

        result = result + value*int(i)
    }

    max := int(math.Pow(2, 31))

    if result > max {
        result = 0
    }

    if flag {
        result = result * (-1)
    }

    return result
}

效率低,實現(xiàn)復(fù)雜

  • 方法2
func reverse1(x int) int {
    y := 0
    for x != 0 {
        y = y * 10 + x % 10
        if !(-(1 << 31) <= y && y <= (1 << 31)-1) {
            return 0
        }

        x = x / 10
    }

    return y
}

效率高,代碼簡潔

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 給出一個 32 位的有符號整數(shù),你需要將這個整數(shù)中每位上的數(shù)字進(jìn)行反轉(zhuǎn)。 示例 1: 示例 2: 示例 3: 注意...
    8239e604d437閱讀 312評論 0 0
  • 前言 本系列,希望使用Python通關(guān)LeetCode,暫時開始做簡單題。初次刷LeetCode目的是為了提高自己...
    3inchtime閱讀 1,640評論 1 1
  • 1.反轉(zhuǎn)字符串 編寫一個函數(shù),其作用是將輸入的字符串反轉(zhuǎn)過來。輸入字符串以字符數(shù)組 char[] 的形式給出。不要...
    neo_ming閱讀 686評論 0 0
  • 【知~學(xué)習(xí)】 《六項精進(jìn)》大綱背誦0遍共26遍 《大學(xué)》背誦0遍共26遍 《六項精進(jìn)》閱讀 學(xué)習(xí)商務(wù)英語 復(fù)看六項...
    張偉_d3c6閱讀 74評論 0 0
  • 參加過許多培訓(xùn),大部分是小范圍、系統(tǒng)內(nèi)的,常常培訓(xùn)時枯坐幾天,回來后憋半夜憋出幾百字感受交差。不說也罷。最好的一次...
    xhy0606閱讀 396評論 0 2

友情鏈接更多精彩內(nèi)容