反轉整數

weixin_34308389發表於2018-09-10

題目描述

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

示例 1:

輸入: 123
輸出: 321

示例 2:

輸入: -123
輸出: -321

示例 3:

輸入: 120
輸出: 21

注意:

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

解決方案

class Solution {
    public int reverse(int x) {
       int result=0;
        int m;
        do {
            m=x%10;
            x/=10;
            if (result>Integer.MAX_VALUE/10||result==Integer.MAX_VALUE/10&&m>7
                    ||result<Integer.MIN_VALUE/10||result==Integer.MIN_VALUE/10&&m<-8){
                return 0;
            }
            result=result*10+m;
        }
    while (x!=0);
        return result;
    }
}

相關文章