https://leetcode-cn.com/problems/reverse-integer/
思路:最大、最小值提前预判,执行过程中不能存储大于或小于的值。
int reverse(int x) {
int sign = 0;
//解决输入异常数据
if (x <= INT_MIN || x >= INT_MAX) {
return 0;
}
if (x < 0) {
sign = 1;
x = -1 * x;
}
int res = 0;
while(x) {
//res乘上一个数是否产出范围
if (res > (INT_MAX – x % 10) / 10) {
return 0;
}
res = res * 10 + (x % 10);
x = x / 10;
}
if (sign == 1) {
return res * -1;
}
return res;
}
版权声明:本文为shushi6969原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。