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

【LeetCode】007 Reverse Interger

时间:2015-04-29 21:32:57      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

题目:LeetCode 007 Reverse Interger

题意:将一个整数的数字反转。保留正负符号。

思路:先将整数变成字符串,然后判断是否为负数,或是否含有’+’,然后从字符串末尾开始累计得到新整数即可。

但是还会有特殊情况,即正向为Int范围内,但反转之后会溢出,因此要进行特判。

代码如下:

 1 class Solution {
 2 public:
 3     int reverse(int x) {
 4         int len, flag = 1, i = 0;
 5         long long ans = 0;
 6         string s = to_string(x);
 7 
 8         len = s.size();
 9         len--;
10         if(s[i] == -)
11         {
12             flag = -1;
13             i++;
14         }
15         // else if(s[i] == ‘+‘) i++;
16 
17         while(len >= i)
18         {
19             ans *= 10;
20             ans += s[len--]-0;
21         }
22         ans *= flag;
23         //cout << ans << endl;
24         // 返回值根据预设的函数类型自动变,Longlong也会自动按int溢出处理
25         if(ans > INT_MAX || ans < INT_MIN) return 0;
26         return ans;
27     }
28 };

 

【LeetCode】007 Reverse Interger

标签:

原文地址:http://www.cnblogs.com/kathyrine/p/4466973.html

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