1. 程式人生 > >LeetCode7. 反轉整數

LeetCode7. 反轉整數

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

示例 1:

輸入: 123
輸出: 321

 示例 2:

輸入: -123
輸出: -321

示例 3:

輸入: 120
輸出: 21

注意:

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

思路:

class Solution {
    public int reverse(int x) {
         if(x>0){  //x>0的情況
            String str=Integer.toString(x);
            String s=reverseString(str);
            try{
                return Integer.parseInt(s);
            }catch (NumberFormatException e){  //字串轉換成int整數異常,返回0
                return 0;
            }

        }else if(x<0){  //x<0的情況
            x=Math.abs(x);
            String str=Integer.toString(x);
            String s=reverseString(str);
            s="-"+s;
            try{
                return Integer.parseInt(s);
            }catch (NumberFormatException e){
                return 0;
            }
        }
        return 0;  //x=0的情況
    }
     
     //反轉字串
     public  String reverseString(String str){
        char ch[]=str.toCharArray();
        int i,j;
        for(i=0,j=ch.length-1;i<(ch.length-1)/2+1;i++,j--){
            char tmp=ch[j];
            ch[j]=ch[i];
            ch[i]=tmp;
        }
        return new String(ch);
    }
}