lintcode,反轉整數
阿新 • • 發佈:2018-12-26
將一個整數中的數字進行顛倒,當顛倒後的整數溢位時,返回 0 (標記為 32 位整數)。
給定 x = 123,返回 321
給定 x = -123,返回 -321
解題思路:有個技巧,在反轉每一位的時候判斷一下有沒有越界。這裡整數反轉可以不判斷是否為正負,因為每次都模擬翻轉的過程,即取餘加到上次結果左移一位,同時紀錄左移一位之前的結果,判斷是否移動一位之後越界溢位了。
一刷ac
二刷ac
public class Solution {
/**
* @param n the integer to be reversed
* @return the reversed integer
*/
public int reverseInteger(int n) {
int res = 0;
while(n != 0){
int val = n % 10;
int tmp = res;
res = tmp * 10 + val;
n = n / 10;
if(res / 10 != tmp) return 0;
}
return res;
}
}