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:
    long reverse(long x) {
        bool neg = false;
        if (x < 0)
        {
            neg = true;
            x *= -1;
        }

        long reversed = 0;
        while (x > 0)
        {
            reversed *= 10;
            reversed += (x % 10);
            x /= 10;
        }
        if (reversed > INT_MAX)
        {
            return 0;
        }
        else
        {
            reversed = (neg ? (reversed * -1) : reversed);
        }
        return reversed;
    }
};

'Challenge' 카테고리의 다른 글

[LeetCode] Palindrome Number  (0) 2021.09.24
[LeetCode] String to Integer (atoi)  (0) 2021.09.24
[LeetCode] ZigZag Conversion  (0) 2021.09.13
Check for pair with a given sum  (0) 2021.09.13
[LeetCode] Longest Palindromic Substring  (0) 2021.09.12

+ Recent posts