【LeetCode】Reverse Integer Go語言實現

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

問題描述

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321

題意很明確,將一個整數反轉輸出。

思路

首先不用考慮用庫函數先轉為字串再反轉的方式,這根本不是演算法。
整體解決思路為,依次取出整數的每一位元,然後反轉,再組裝成整數即可。有幾個點需要考慮:

  • 取末位元。 num % 10 即可。
  • 去掉末位元。 num / 10 即可。
  • 組裝整數。定義 sum := 0, 迴圈數字序列,每次 sum = sum * 10 + 數字即可
  • 溢出問題。問題規定了整數為32位,因此最大值為0x7FFFFFFF, 最小值為-0x80000000

Go實現

用時6ms, 擊敗20%用Golang的人。

var MIN int = 0x80000000var MAX int = 0x7FFFFFFFfunc reverse(x int) int {    sum := 0    for {        leftDigits := x / 10        lastDigit := x % 10        x = leftDigits        sum = sum * 10 + lastDigit        if 0 == leftDigits {            break        }    }    if sum < -MIN || sum > MAX {        fmt.Println(sum)        sum = 0    }    return sum}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.