码迷,mamicode.com
首页 > 其他好文 > 详细

Reverse Integer

时间:2015-04-12 11:58:33      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321

 

此题注意边界条件 -2^31 < int < 2 ^ 31 - 1    在C++里,9 * 1000,000,000 = 410065408, 不等于9,000,000,000. 但是 2 * 1,000,000,000 = 2,000,000,000.

 1 class Solution {
 2 public:
 3     int reverse(int x) {
 4         if(x == -2147483648) return 0;
 5         string s;
 6         int positive = 1;
 7         if(x < 0) {x = -x; positive = -1;}
 8         while(x){
 9             char temp = x % 10 + 0;
10             s += temp;
11             x /= 10;
12         }
13         int result = string2int(s);
14         if(result){
15             if(positive == -1) return -result;
16             return result;
17         }
18         return 0;
19     }
20     
21     int string2int(string s){
22         if(s.length() > 10 || (s.length() == 10 && s[0] > 2)) return 0;
23         double result = 0;
24         int exponential = 1;
25         for(int i = s.length() - 1; i >= 0; i--){
26             int temp = s[i] - 0;
27             result += temp * exponential;
28             exponential *= 10;
29         }
30         if(result > 2147483647.0) return 0;
31         return result;
32     }
33 };

 

Reverse Integer

标签:

原文地址:http://www.cnblogs.com/amazingzoe/p/4418415.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!