## [7\. Reverse Integer](https://leetcode.com/problems/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 **Constraints:** - `-231 <= x <= 231 - 1` ```cpp= class Solution { public: int reverse(int x) { int reversed = 0; while(x != 0) { int digit = x % 10; x /= 10; if(reversed > INT_MAX / 10 || (reversed == INT_MAX / 10 && digit > INT_MAX % 10)) return 0; if(reversed < INT_MIN / 10 || (reversed == INT_MIN / 10 && digit < INT_MIN % 10)) return 0; reversed = reversed * 10 + digit; } return reversed; } }; ``` :::success - 時間複雜度:$O(\log N)$ - 空間複雜度:$O(1)$ :::