最近在LeetCode上做题,写点东西记录一下,虽然自己做的都是些很水的题目,但是重在练手。
题号7:Reverse Integer,题目描述:
Reverse digits of an integer:例如,输入123,输出321;输入-123,输出-321。
思路很简单:将原数的每一位求出,然后将原数的每一位倒序,生成一个整数。在程序中,使用了队列,利用其先进先出的原则,倒序原数每一位。
注意的地方:防止溢出。
代码如下:
class Solution {
public:
int reverse(int m) {
long long n =(long long)m;
queue<long> q;
if(n==0)
return 0;
else
{
if(n>0)
{
while(n)
{
q.push(n%10);
n/=10;
}
while(!q.empty())
{
n=n*10+q.front();
q.pop();
}
if(n>2147483647) return 0;
return n;
}
else
{
n=abs(n);
while(n)
{
q.push(n%10);
n/=10;
}
while(!q.empty())
{
n=n*10+q.front();
q.pop();
}
if(abs(n)>2147483648UL) return 0;
return -n;
}
}
}
};