[LeetCode] Reverse Integer

7. 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).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
void reverse(string& s, int n,int i) {

if(n<=i){return;}

swap(s[i],s[n]);
reverse(s,n-1,i+1);
}
public:
int reverse(int x) {
if (x == 0) return 0;
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;
}
};
Author: Song Hayoung
Link: https://songhayoung.github.io/2021/12/06/PS/LeetCode/reverse-integer/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.