7. 整数反转(数论)
思路:因为该数可能溢出所以再溢出前要对该数与 和 比较,并且此处不用 特殊考虑个位,因为若刚好为最大值或最小值,原数的首位只能为1或2.不过最好还是对特殊情况考虑到。
AC代码:
class Solution {
public:
int reverse(int x) {
int y=0;
while(x){
if(y>INT_MAX/10||y<INT_MIN/10) return 0;
y=y*10+x%10;
x/=10;
}
return y;
}
};
完整特判:
if(y>INT_MAX/10||(y==INT_MAX/10&&x%10>7)) return 0;
if(y<INT_MIN/10||(y==INT_MIN/10&&x%10<-8)) return 0;