編程語言是 Java,代碼托管在我的 GitHub 上傻唾,包括測試用例投慈。歡迎各種批評指正!
<br />
題目 —— Reverse Integer
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
<br >
解答
題目大意
反轉(zhuǎn)一個整數(shù)的所有整數(shù)位冠骄。解題思路
對于整數(shù)取位數(shù)逛裤,我們一下能想到的方法就是除以 10 取余數(shù),這樣循環(huán)取位猴抹,就是倒序的带族,然后我們在另一個整數(shù)中 *10 再加上這個余數(shù)即可。代碼實現(xiàn)
public class Solution {
public int reverse(int x) {
int result = 0;
while (x != 0) {
int remainder = x % 10;
int newResult = result * 10 + remainder;
if ((newResult - remainder) / 10 != result) {
return 0;
}
result = newResult;
x = x/10;
}
return result;
}
}
-
小結(jié)
對于該題目注意兩點:- 循環(huán)的跳出條件蟀给,因為 x 可正可負蝙砌,所以等于 0 時退出。
- 翻轉(zhuǎn)整數(shù)可能引起溢出跋理,但是溢出分正負兩種情況择克,如何判斷溢出呢?這里減去余數(shù)以后前普,再除以 10肚邢,判斷和運算之前的結(jié)果是否相等即可。