leetcode/src/s0007_reverse_integer.cpp

21 lines
363 B
C++

#include "s0007_reverse_integer.hpp"
int S0007::reverse(int x) {
int r{0};
std::queue<int> queue;
while (x != 0) {
queue.push(x % 10);
x = static_cast<int>((x - (x % 10)) / 10);
}
while (!queue.empty()) {
if (r < INT_MIN / 10 || r > INT_MAX / 10) {
return 0;
}
r = r * 10 + queue.front();
queue.pop();
}
return r;
}