简洁易懂讲清原理,讲不清你来打我~
输出整数,反转,输出整数,反转超出int输出0
取得个位
简单的思路
取得个位,放入结果个位,可能溢出用INT_MAX/10和INT_MAX%10判断
精准的定义
ans是不断积累个位的答案
positive是不断被截取个位的正数
isNegative是负数标志
class Solution {
public:
int reverse(int x) {
int ans=0,positive=x;
bool isNegative=false;
if(x==INT_MIN)return 0;
if(x<0){
isNegative=true;
positive=-positive;
}
while(positive>0){
if(ans>INT_MAX/10||ans==INT_MAX/10&&positive>INT_MAX%10){
ans=0;
break;
}
ans=ans*10+positive%10;
positive/=10;
}
if(isNegative)ans=-ans;
return ans;
}
};
踩过的坑
if(x==INT_MIN)return 0;
喜欢简洁易懂还能讲清楚原理博客的小伙伴就关注关注这个非常高产的博主呀,下次再会~