[leetcode] 整數反轉

題目

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

示例 1:

輸入: 123
輸出: 321

示例 2:

輸入: -123
輸出: -321

示例 3:

輸入: 120
輸出: 21

注意:

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

思路

可以逐個取出輸入數字的末位數字形成新的數字,採取隊列的思想,每次取出了新的末位數字放到新數字的末尾,如下過程:

輸入123
第一次取出3,獲得新數字3
第二次取出2,獲得新數字32
第三次取出1,獲得新數字321,完成了整數反轉.

解題

class Solution {
    public int reverse(int x) {
        int temp1=0;
        while(x!=0){
            int temp2=temp1*10 + x%10;
            if(temp2 /10 != temp1)
                return 0;
            temp1 = temp2;
            x /= 10;
        }
        return temp1;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章