반응형

[LeetCode, 리트코드] Reverse Integer

반응형


1. Problem


주어진 32bit 정수형 입력에 대하여 그 입력을 뒤집어서 출력하라. 단 연산 도중 생기는 오버플로우는 반환값을 0을 반환함으로써 처리한다.

Example 1:

Input: 123
Output: 321

Example 2:

Input: -123
Output: -321

Example 3:

Input: 120
Output: 21


2. Solution


String to Integer 문제와 거의 흡사하다. C++ reverse 사용법을 익히고 가자.



3. What I solved

class Solution {
public:
    int reverse(int x) {
        if(x == 0) 
            return 0;
        
        bool minus = false;
        if(x < 0){
            minus = true;
            x = -x;
        }
            
        string xToStr = to_string(x);
        std::reverse(xToStr.begin(), xToStr.end());
        
        int i=0;
        while(xToStr[i] == '0')
            ++i;
        xToStr = xToStr.substr(i);
        
        double ret = stod(xToStr);
        
        if(ret > numeric_limits::max())
            return 0;
        
        return minus ? -stoi(xToStr) : stoi(xToStr);
    }
};



4. Best Solution


위와 동일

반응형

이 글을 공유하기

댓글

Designed by JB FACTORY