幹活幹累了,刷一道題,一天保底兩道,一年也就差很少刷完了 ----------7. Reverse Integer

這道題在17年的時候,我就刷過了,可是看到題目我也沒有想起來我是怎麼寫的,而後看了一下提交記錄,一會兒想起來了,而後就開始寫,發現總體差很少,就有一點點的差異,之前多寫了一個變量的,可是思路都是同樣的。io

class Solution {
    public int reverse(int x) {
        //判斷正負
        int negatives = 1;
        long res = 0;
        
        if(x < 0) negatives = -1;
        
        x = x * negatives;
        int tag = x; 
        
        while(x > 0){
            res = tag % 10 + res * 10;
            x = x / 10;
            tag = x;
        }
        
        if(res > Integer.MAX_VALUE) return 0;
        
        return (int) res * negatives;
    }
}class

總結:變量

1.主要在於tag變量與參數的取餘。循環

2.對參數進行正負判斷,並把正負保存到negatives變量中總結

3.而後對參數取正數,並付給中間變量tag,至關於計算使用tag,while的條件判斷交給參數x,分工明確,而後對tag進行取餘數,結果res*10+tag的餘數while

 

--------------------------------改進的----------------------------------------return

是代碼看着不那麼多,循環中減小點代碼參數

class Solution {
    public int reverse(int x) {
        int negatives = 1;
        if(x < 0) negatives = -1;
        x = x * negatives;//取正
        long res = 0;//結果
        while(x > 0){
            res = x % 10 + res * 10;
            x /= 10; 
        }
        
        if(res > Integer.MAX_VALUE) return 0;
        
        return (int) res * negatives;
        
    }
}tag

相關文章
相關標籤/搜索