leetcode-7-reverse integer

题目

数字反转,输入123,返回321,输入-123,返回-321

分析

注意特殊情况:10和100
整数越界返回0(对于32-bit,1000000003反转后越界)

  1. 标记符号位
  2. 辗转相除,除10取余,以前的结果×10+余数
  3. 最终的结果×符号位

C++代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
public:
int (int x) {
long ret = 0;
while(x!=0){
if(ret*10 +x%10>=INT_MAX || ret*10 +x%10<=INT_MIN){
ret = 0;break;
}
else
ret = ret*10 +x%10;
x/=10;
}
return ret;

}
};