7.整数反转
题目描述:给你一个32位的有符号整数x,返回将x中的数字部分反转后的结果。如果反转后整数超过32位的有符号整数的范围[-232,231 -1],就返回0
示例:
输入:x = 123
输出:321
输入:x = -123
输出:-321
输入:x = 0
输出:0
思路:
将x的最低位放到res上,然后res*10,循环
代码+解析:
class Solution {
public:
int reverse(int x) {
int res = 0;
while( x!=0 ){
if( res > INT_MAX /10 ||res < INT_MIN / 10)return 0; //溢出则return 0
res = res*10 + x%10;
x /= 10;
}
return res;
}
};
学到的总结:
1.溢出判断:res > INT_MAX /10 || res < INT_MIN / 10 。INT_MAX和INT_MIN是常量(大概)