leetcode-翻轉整數

題目描述:

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

示例 1:

輸入: 123
輸出: 321

 示例 2:

輸入: -123
輸出: -321

示例 3:

輸入: 120
輸出: 21

注意:

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


方法:不斷求餘和乘以十,注意溢出。

代碼:

public class Solution {  
    public int reverse(int x) {  
        boolean negative = x < 0;  
        if (negative) x = -x;  
        long r = 0;  
        while (x>0) {  
            r = r * 10 + x % 10;  
            x /= 10;  
        }  
        if (negative) r = -r;  
        if (r > Integer.MAX_VALUE || r < Integer.MIN_VALUE) return 0;  
        return (int)r;  
    }  
}  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章