7. 整數反轉(位數反轉)
阿新 • • 發佈:2020-10-04
題目
給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。
示例1:
輸入: 123
輸出: 321
示例 2:
輸入: -123
輸出: -321
示例 3:
輸入: 120
輸出: 21
注意:
假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為[−2^31, 2^31− 1]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。
來源:力扣(LeetCode)
解答
C語言
依次對x的末位進行處理,即通過x%10
取餘獲得個位數,通過x/10
替代現有x。
通過ret
變數儲存當前個位數,每進行依次迴圈,則ret
將值×10,並加上新增個位數。
特別需要注意x的取值範圍。
//0 ms 5.1 MB
int reverse(int x){
long ret = 0;
while (x != 0) {
ret = x % 10 + ret * 10;
x = x / 10;
}
if (ret > 2147483647 || ret < -2147483648 ) {
return 0;
}else {
return (int)ret;
}
}
golang
同理
// 0 ms 2.2 MB func reverse(x int) int { var ret int64 = 0 for x != 0 { ret = int64 (x) % 10 + ret * 10 x = x / 10 } if (ret > 2147483647 || ret < -2147483648 ) { return 0 }else { return int (ret) } }