<p>Given a signed 32-bit integer <code>x</code>, return <code>x</code><em> with its digits reversed</em>. If reversing <code>x</code> causes the value to go outside the signed 32-bit integer range <code>[-2<sup>31</sup>, 2<sup>31</sup> - 1]</code>, then return <code>0</code>.</p>

<p><strong>Assume the environment does not allow you to store 64-bit integers (signed or unsigned).</strong></p>

<p>&nbsp;</p>
<p><strong class="example">Example 1:</strong></p>

<pre>
<strong>Input:</strong> x = 123
<strong>Output:</strong> 321
</pre>

<p><strong class="example">Example 2:</strong></p>

<pre>
<strong>Input:</strong> x = -123
<strong>Output:</strong> -321
</pre>

<p><strong class="example">Example 3:</strong></p>

<pre>
<strong>Input:</strong> x = 120
<strong>Output:</strong> 21
</pre>

<p>&nbsp;</p>
<p><strong>Constraints:</strong></p>

<ul>
	<li><code>-2<sup>31</sup> &lt;= x &lt;= 2<sup>31</sup> - 1</code></li>
</ul>

class Solution {
public:
    int reverse(int x) {
        int count = 0;
        int n = abs(x);
        vector<int> v;
        while(n>0){
            count++;
            v.push_back(n%10);
            n = n/10;
        }
        count = count-1;

        int ans = 0;
        for(int i=0;i<v.size();i++){
            
            if(INT_MAX - ans > pow(10,count)*v[i]){
                ans += pow(10,count)*v[i];
            }
            else{
                return 0;
            }
            count--;
        }

        if(x<0){
            ans = 0-ans;
        }
        return ans;
    }
};
8900