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

LeetCode之整數反轉

整數反轉

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

示例 1:

輸入: 123
輸出: 321

示例 2:

輸入: -123
輸出: -321

示例 3:

輸入: 120
輸出: 21

注意:

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

方法一:

public int reverse(int x) {
    String code = String.valueOf(x);
    boolean code_tmp =
false; if(code.startsWith("-")) { code_tmp = true; code = code.substring(1); } long new_code = Long.parseLong(new StringBuffer(code).reverse().toString()); if(new_code > Integer.MAX_VALUE || new_code < Integer.MIN_VALUE) { return 0; } int codes =
(int)new_code; return code_tmp ? 0 - codes : codes; }

方法二:

public int reverse(int x) {
    long result=0;
    int flag = 1;
    if (0 > x){ 
        flag = -1; 
        x *= (-1);
    }
    while (0 < x) {
        result = result * 10 + x % 10;
        x /= 10;
    }
    if (result > Integer.
MAX_VALUE) result = 0; return (int)result*flag; }

需要關注一下溢位問題即可。