首页 > 其他 > 详细

Reverse Integer

时间:2015-04-12 11:58:05      阅读:127      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!