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 };