LeetCode 解題報告 - 7. Reverse Integer

編程語言是 Java,代碼托管在我的 GitHub 上,包括測試用例。歡迎各種批評指正!

<br />

題目 —— Reverse Integer

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321
<br >

解答

  • 題目大意
    反轉一個整數的所有整數位。

  • 解題思路
    對于整數取位數,我們一下能想到的方法就是除以 10 取余數,這樣循環取位,就是倒序的,然后我們在另一個整數中 *10 再加上這個余數即可。

  • 代碼實現

public class Solution {
    public int reverse(int x) {
        int result = 0;
        while (x != 0) {
            int remainder = x % 10;
            int newResult = result * 10 + remainder;
            if ((newResult - remainder) / 10 != result) {
                return 0;
            }
            result = newResult;
            x = x/10;
        }
        return result;
    }
}
  • 小結
    對于該題目注意兩點:
    • 循環的跳出條件,因為 x 可正可負,所以等于 0 時退出。
    • 翻轉整數可能引起溢出,但是溢出分正負兩種情況,如何判斷溢出呢?這里減去余數以后,再除以 10,判斷和運算之前的結果是否相等即可。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經驗。 張土汪:刷leetcod...
    土汪閱讀 12,779評論 0 33
  • 1.把二元查找樹轉變成排序的雙向鏈表 題目: 輸入一棵二元查找樹,將該二元查找樹轉換成一個排序的雙向鏈表。 要求不...
    曲終人散Li閱讀 3,371評論 0 19
  • 【程序1】 題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔...
    葉總韓閱讀 5,167評論 0 41
  • 貪心算法 貪心算法總是作出在當前看來最好的選擇。也就是說貪心算法并不從整體最優考慮,它所作出的選擇只是在某種意義上...
    fredal閱讀 9,284評論 3 52
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,778評論 18 399