[LeetCode] Reverse Integer

http://oj.leetcode.com/problems/reverse-integer/

简单题, 要注意结尾是0的情况的处理. 真沙茶同学什么时候才可以如此轻松的切难题呢.

 1 class Solution {
 2 public:
 3     
 4     long long myPow(int n, int p) {
 5         long long re = 1;
 6         for (int i = 0; i < p; ++i) {
 7             re *= n; 
 8         }
 9         return re;
10     }
11 
12     int reverse(int x) {
13         // IMPORTANT: Please reset any member data you declared, as
14         // the same Solution instance will be reused for each test case.
15         vector<int> vec;
16         int t = x > 0 ? x : -x;
17         int flag = 0;
18         while (t) {
19             int s = t % 10;
20             if (s != 0) {
21                 flag = 1;
22                 vec.push_back(s);
23             } else if(flag) {
24                 vec.push_back(s);
25             }
26             t /= 10;
27         }
28         long long re = 0;
29         for (unsigned int i = 0; i < vec.size(); ++i) {
30             re += vec[i] * myPow(10, (vec.size() - i -1));
31         }
32         return (x > 0 ? re : -re);
33     }
34 };

 

posted @ 2013-11-07 23:23  NextLife  阅读(165)  评论(0)    收藏  举报