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).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
classSolution { voidreverse(string& s, int n,int i){
if(n<=i){return;}
swap(s[i],s[n]); reverse(s,n-1,i+1); } public: intreverse(int x){ if (x == 0) return0; int flag = x > 0 ? 1 : -1; string sx = to_string(abs(x)); reverse(sx, sx.length() - 1, 0); long lx = atol(sx.c_str()) * flag; return (lx > INT_MAX || lx < INT_MIN) ? 0 : lx; } };