LeetCode题目_Reverse Integer

最近在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;
        }
    }
    }
};

posted @ 2015-04-12 00:15  sunp823  阅读(108)  评论(0编辑  收藏  举报