1. 程式人生 > 其它 >整數反轉(常規反轉法)

整數反轉(常規反轉法)

題目

給你一個 32 位的有符號整數 x ,返回 x 中每位上的數字反轉後的結果。

如果反轉後整數超過 32 位的有符號整數的範圍 [−231, 231 − 1] ,就返回 0。

假設環境不允許儲存 64 位整數(有符號或無符號)。

示例 1:

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

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

輸入:x = 120
輸出:21
示例 4:

輸入:x = 0
輸出:0

來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/reverse-integer
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。

解答

class Solution {
    public int reverse(int x) {
        //通過long和int的不同界來排除
        long n = 0;
        while(x != 0){
            n = n * 10 + x % 10;
            x /= 10;
        }
        return (int)n == n? (int)n : 0;
    }   
}

反轉整數的核心程式碼就是取餘和除10,這裡由於規定了邊界,要採用long轉int來巧妙的歸避越界問題。