20.07.15 LeetCode7. 整數反轉
阿新 • • 發佈:2020-07-17
1 給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。 2 3 示例1: 4 5 輸入: 123 6 輸出: 321 7 示例 2: 8 9 輸入: -123 10 輸出: -321 11 示例 3: 12 13 輸入: 120 14 輸出: 21 15 注意: 16 17 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為[−231, 231− 1]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。 18 19 來源:力扣(LeetCode) 20 連結:https://leetcode-cn.com/problems/reverse-integer
題解:
1 class Solution {
2 public:
3 int reverse(int x) {
4 if(x/10==0)
5 return x;
6 int y = 0;
7 while(x)
8 {
9 if(y> INT_MAX/10 || y < INT_MIN/10) //判斷溢位
//因為下面有y*10的操作,如果是y<max則要在運算後判斷,但判斷溢位一般都是寫在頭部,故以此寫法。
10 return 0;
11 y = y*10;
12 y=y+x%10;
13 x = x/10;
14 }
15 return y;
16 }
17 };