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