N

(Leet Code c++)Reverse Integer 본문

Leet Code 알고리즘

(Leet Code c++)Reverse Integer

naeunchan 2021. 7. 5. 11:28
728x90
반응형

7. Reverse Integer

 

Given a signed 32-bit integer x, return x with its digits reversed. If reversing x causes the value to go outside the signed 32-bit integer range [-231, 231 - 1], then return 0.

Assume the environment does not allow you to store 64-bit integers (signed or unsigned).

 

Example 1:

Input: x = 123 Output: 321

Example 2:

Input: x = -123 Output: -321

Example 3:

Input: x = 120 Output: 21

Example 4:

Input: x = 0 Output: 0

 

Constraints:

  • -231 <= x <= 231 - 1
class Solution {
public:
    int reverse(int x) {
        int answer = 0;
        
        while(x != 0){
            int remain = x % 10;
            
            x /= 10;
            
            if(answer > INT_MAX / 10 || (answer == INT_MAX / 10 && remain > 7)){
                return 0;
            }
            
            if(answer < INT_MIN / 10 || (answer == INT_MIN / 10 && remain < -8)){
                return 0;
            }
            
            answer = answer * 10 + remain;
        }
        
        return answer;
    }
};
728x90
반응형