leetcode7.反轉整數
阿新 • • 發佈:2018-12-26
給定一個 32 位有符號整數,將整數中的數字進行反轉。
示例 1:
輸入:123 輸出:321
示例 2:
輸入:-123 輸出:-321
示例 3:
輸入:120 輸出:21
注意:
假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 [−231, 231 − 1]。根據這個假設,如果反轉後的整數溢位,則返回 0。
思路:轉換成String利用reverse()函式取反,然後完成後再轉換成int即可。
遇到的問題:負數無法直接轉換,需要{負數->絕對值,反轉的絕對值->負數}。
class Solution { public int reverse(int x) { //正數的邊界(絕對值) String z = "2147483647"; //負數的邊界(絕對值) String c = "2147483648"; //正數情況 if(x>0) { String y; //轉換成String y = String.valueOf(x); //取反 y =new StringBuffer(y).reverse().toString(); //判斷是否反轉後溢位 if(y.length()>=z.length()&&y.compareTo(z)>0) return 0; //不溢位時,轉換會int x = Integer.valueOf(y).intValue(); return x; } else{ x = -x; String y; //轉換成String y = String.valueOf(x); //取反 y =new StringBuffer(y).reverse().toString(); //判斷是否反轉後溢位 if(y.length()>=c.length()&&y.compareTo(c)>0) return 0; //不溢位時,轉換會int,負數返回負值 x = Integer.valueOf(y).intValue(); return -x; } } }