7. Reverse Integer

Given a 32-bit signed integer, reverse digits of an integer.

Example 1:

Input: 123
Output:  321

 

Example 2:

Input: -123
Output: -321

 

Example 3:

Input: 120
Output: 21

 

Note:
Assume we are dealing with an environment which could only hold integers within the 32-bit signed integer range. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.

思路:用一个long型来解决overflow问题。

 1 class Solution {
 2 public:
 3     int reverse(int x) {
 4         bool isActive=true;
 5         if(x<0)
 6         {
 7             x=-x;
 8             isActive=false;
 9         }
10         long reverseX=0;
11         while(x)
12         {
13             reverseX=reverseX*10+x%10;
14             x=x/10;
15         }
16         if(!isActive)reverseX=-reverseX;
17         if(reverseX>INT_MAX || reverseX<INT_MIN)return 0;
18         return reverseX;
19     }
20 };

 

   

posted @ 2017-12-31 16:47  jeysin  阅读(117)  评论(0编辑  收藏  举报