1. 程式人生 > 實用技巧 >20.07.15 LeetCode7. 整數反轉

20.07.15 LeetCode7. 整數反轉

 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, 2311]。請根據這個假設,如果反轉後整數溢位那麼就返回 018 
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 };