水题。
class Solution {
public:
int reverse(int x) {
if (!x) {
return 0;
}
string init_s;
bool positive = x > 0 ? true : false;
long long y;
if (!positive) {
y = ((long long)x) * (-1);
} else {
y = x;
}
while(y) {
init_s = init_s + (char)('0'+y%10);
y /= 10;
}
long long reverse = 0;
for (int i = 0; i < init_s.length(); i++) {
reverse = reverse*10 + (init_s[i] - '0');
}
if (!positive) {
reverse *= -1;
}
// 正数溢出.
if (positive && reverse > int_pow(2, 31) - 1) {
return 0;
} else if (!positive && reverse < -1 * int_pow(2, 31)) {
// 负数溢出.
return 0;
} else {
return reverse;
}
}
private:
long long int_pow(int x, int n) {
long long pow = 1;
while(n--) {
pow *= x;
}
return pow;
}
};