Leetcode-7. 整数反转

7. 整数反转

思路:

各位挨个取余,注意边界值,INT_MAX= 2147483647,INT_MIN=-2147483648

判断 1.如果当前翻转s>INT_MAX/10||s==INT_MAX/10&&当前取余大于7 必然溢出

2.如果当前s<INT_MIN/10||(s==INT_MIN/10&&当前取余<-8) 必然溢出

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