[LeetCode]Reverse Integer題解

題目鏈接:7. Reverse Integer
難度:Easy

Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
Note:
The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows.

要點
本題考查的是整數相加的溢出處理,檢查溢出有這么幾種辦法:

  • 兩個正數數相加得到負數,或者兩個負數相加得到正數,但某些編譯器溢出或優化的方式不一樣
  • 對于正數,如果最大整數減去一個數小于另一個數,或者對于負數,最小整數減去一個數大于另一個數,則溢出。這是用減法來避免加法的溢出。
  • 使用long來保存可能溢出的結果,再與最大/最小整數相比較

Java

class Solution {
    public int reverse(int x) {
        int res = 0;
        while (x != 0) {
            if (Math.abs(res) > Integer.MAX_VALUE / 10) return 0;
            res = res * 10 + x % 10;
            x /= 10;
        }
        return res;
    }
};

參考:[Leetcode] Reverse Integer 反轉整數

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經驗。 張土汪:刷leetcod...
    土汪閱讀 12,778評論 0 33
  • LeetCode 刷題隨手記 - 第一部分 前 256 題(非會員),僅算法題,的吐槽 https://leetc...
    蕾娜漢默閱讀 17,941評論 2 36
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,778評論 18 399
  • 我是個火影迷,從大學時開始一直到現在,鳴人的勵志故事就像是濃濃的雞湯,不時地激勵著我,而那句“說到做到”就是我的忍...
    貝子晨閱讀 771評論 0 1
  • 文:喜濤 向來喜歡直奔主題,小秘密就是: 放下了,放下了,放下了煩惱!!! “從疑惑、抱怨、拖延的28個月中放下了...
    早睡早起團時間管理閱讀 424評論 0 0