力扣7. 整数反转
Posted 幽殇默
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了力扣7. 整数反转相关的知识,希望对你有一定的参考价值。
https://leetcode-cn.com/problems/reverse-integer/
class Solution {
public:
int reverse(long long int x) {
bool flag=false;
if(x<0) flag=true,x=-x;
long long int ans=0;
while(x)
{
ans=ans*10+x%10;
x/=10;
}
if(flag) ans=ans*-1;
if((ans>pow(2,31)-1)||ans<(-1*pow(2,31))) return 0;//过界了
return ans;
}
};
在c语言中负数取模还是负数,故其实不用特判
class Solution {
public:
int reverse(int x) {
long long int ans=0;
while(x)
{
ans=ans*10+x%10;
x/=10;
}
if(ans>INT_MAX) return 0;
if(ans<INT_MIN) return 0;
return ans;
}
};
完美做法,题目给的是int范围,故我们还是用int
class Solution {
public:
int reverse(int x) {
int ans=0;
while(x)
{
if(ans>0&&ans>(INT_MAX-x%10)/10) return 0;
if(ans<0&&ans<(INT_MIN-x%10)/10) return 0;
ans=ans*10+x%10;
x/=10;
}
return ans;
}
};
以上是关于力扣7. 整数反转的主要内容,如果未能解决你的问题,请参考以下文章
7. 整数反转(leetcode力扣算法 - java / rust)