Reverse Integer

Jin Shang bio photo By Jin Shang

Given a 32-bit signed integer, reverse digits of an integer.

Example 1:

Input: 123
Output: 321

Example 2:

Input: -123
Output: -321

Example 3:

Input: 120
Output: 21

Note: Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−231, 231 − 1]. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.

Solution:

to_string() and stol()

class Solution {
public:
    int reverse(int x) {
        bool sign = (x<0);
        long long ans;
        long long y = x;
        if(sign) y*=-1;
        string s = to_string(y);
        std::reverse(s.begin(),s.end());
        ans = stol(s);
        if(sign) ans*=-1;
        if(ans>INT_MAX||ans<INT_MIN) return 0;
        return (int)ans;
    }
};