翻轉整數

就是我發表於2018-09-22

題目描述

給定一個 32 位有符號整數,將整數中的數字進行反轉。

示例 1:

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

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

輸入: 120 輸出: 21 注意:

假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 [−231, 231 − 1]。根據這個假設,如果反轉後的整數溢位,則返回 0。

思路分析

1.先從10位進行取餘操作獲得當前整數位的最後一位數字。 2.把整數位除以10縮減一位 3.再用10*上次結果加上餘數 4.判斷32位有符號整數最大值和最小值除以10,和個數位是否大於7和小於-8

public static int Reverse(int x)
{
    int rev = 0;
    while (x != 0)
    {
        int pop = x % 10;
        x /= 10;
        if (rev > Int32.MaxValue / 10 || (rev == Int32.MaxValue / 10 && pop > 7)) return 0;
        if (rev < Int32.MinValue / 10 || (rev == Int32.MinValue / 10 && pop < -8)) return 0;
        rev = rev * 10 + pop;
    }
    return rev;
}複製程式碼

相關文章