leetcode-7 整數反轉 java實現

題目:

給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。

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

思路:

將該數轉換爲char數組,判斷該整數是否是負數,如果是那麼需要反轉的就是1~length-1,不是負數就需要反轉0~length-1;,每次進行判斷是否超界。

代碼如下:

class Solution {
    public int reverse(int x) {
       String s = String.valueOf(x);
        char[] ch = s.toCharArray();
        int result = 0;
        int length = ch.length;
        if (x<0){
            while (length-- > 1){
                if (-result < (Integer.MIN_VALUE+(ch[length]-'0'))/10){
                    return 0;
                }else{
                    result = result*10+ch[length]-'0';
                }
            }
            result*=-1;
        }else{
            while(length-- > 0){
                if (result > (Integer.MAX_VALUE-(ch[length]-'0'))/10){
                    return 0;
                }else{
                    result = result*10+ch[length]-'0';
                }
            }
        }
        return result;
    }
}

 

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