這道題在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