题目比较简单,需要注意的是整数的范围
AC Code
//Reverse Integer
int reverse(int x_) {
long long x = x_;
if (abs(x) > INT_MAX) return 0;
bool isNeg = false;
if (x < 0) isNeg = true;
x = abs(x);
vector<int> digits;
long long base = 10;
while (x != 0){
digits.push_back(x % 10);
x /= base;
}
vector<int>::reverse_iterator rit;
long long newInt = 0;
base = 1;
for (rit = digits.rbegin(); rit != digits.rend(); ++rit){
newInt += (long long)(*rit) * base;
base *= 10;
}
int ret;
if (newInt > INT_MAX) ret = 0;
else ret = newInt;
return isNeg ? -ret : ret;
}