題目描述:
給出一個(gè) 32 位的有符號(hào)整數(shù),你需要將這個(gè)整數(shù)中每位上的數(shù)字進(jìn)行反轉(zhuǎn)。
示例 1:
輸入: 123
輸出: 321
示例 2:
輸入: -123
輸出: -321
示例 3:
輸入: 120
輸出: 21
注意:
假設(shè)我們的環(huán)境只能存儲(chǔ)得下 32 位的有符號(hào)整數(shù),則其數(shù)值范圍為 [?231, 231 ? 1]。請(qǐng)根據(jù)這個(gè)假設(shè),如果反轉(zhuǎn)后整數(shù)溢出那么就返回 0。
int reverse(int x) {
int temp = x, num = 0;
while (x) {
if (num > INT32_MAX / 10 || (num == INT32_MAX / 10 && (x % 10) > 7)) {
return 0;
}
if (num < INT32_MIN / 10 || (num == INT32_MIN / 10 && (x % 10) < -8)) {
return 0;
}
num = num * 10 + x % 10;
x /= 10;
}
return num;
}