您的位置:首页 > 其它

LeetCode 7 反转整数

2018-11-07 17:52 302 查看

题目要求:

给定一个 32 位有符号整数,将整数中的数字进行反转。

示例 1:

[code]输入: 123
输出: 321

示例 2:

[code]输入: -123
输出: -321

示例 3:

[code]输入: 120
输出: 21

注意:

假设我们的环境只能存储 32 位有符号整数,其数值范围是 。根据这个假设,如果反转后的整数溢出,则返回 0。

 

 

 

C++代码1:

[code]#define INT_MAX 2147483647
#define INT_MIN (-INT_MAX-1)

class Solution {
public:
int reverse(int x) {
long result = 0;
while(x)
{
result = result*10 + x % 10;
x /= 10;
}
return (result > INT_MAX || result < INT_MIN)? 0 : result;
}
};

 

 

结果:

 

 

 

 

 

C++代码2:

逻辑和代码1是一样的,只是分步写,比较直观

[code]#define LIMIT_MAX 2147483647
#define LIMIT_MIN (-LIMIT_MAX-1)

class Solution {
public:
int reverse(int x) {
bool Is_negative=false;

if(x<0)
{
x=x*(-1);
Is_negative=true;
}
long result=0;
while(x)
{
result=result*10+x%10;
x = x/10;
}
if(Is_negative)
{
result=result*(-1);
if(result<LIMIT_MIN)
return 0;
}
if(result>LIMIT_MAX)
{
return 0;
}

return result;
}
};

 

 

结果:

结果也一模一样

 

 

 

 

 

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: