1. 程式人生 > >[LeetCode] 反轉整數

[LeetCode] 反轉整數

class cat exceptio 返回 reverse string 沒有 值範圍 etc

題目:

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

示例 1:

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

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

輸入: 120
輸出: 21
註意:

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

  

思路:

我沒有想更多的辦法,因為以前用過StringBuffer裏面的reserve方法,索性這裏也試試

反轉之後聽過Integer.parseInt轉為整數,然後catch異常,有異常就說明溢出,返回0

代碼:

int t = Math.abs(x);
        StringBuffer s = new StringBuffer();
        s.append(t);
        int a = x < 0?-1:1;
        try {
            a = a * Integer.parseInt(s.reverse().toString());
        }catch (Exception e){
            return 0;
        }
        return a;

  

效果還不錯,30ms

技術分享圖片

[LeetCode] 反轉整數