您的位置:首页 > 其它

LeetCode 007 Reverse Integer

2014-05-14 11:03 351 查看

【题目】

Reverse digits of an integer.

Example1: x = 123, return 321

Example2: x = -123, return -321

【题意】

反转int型整数,输出的也是int型的整数

【思路】

如要考虑两种特殊情况:

1. 类似100这样的整数翻转之后为1

2. 翻转之后的值溢出该如何处理,

本题的测试用例中似乎没有给出溢出的情况

在实际面试时需要跟面试官明确这种情况的处理方法。

基于这点事实,本题规定如果超出正边界返回INT_MAX, 超出负边界返回INT_MIN

【代码】

class Solution {
public:
int reverse(int x) {
long long reverseX=0;
int isNegative=1;
if(x<0){
isNegative=-1;
x*=-1;      //取正
}
while(x){
reverseX=10*reverseX+x%10;
x/=10;
}
reverseX*=isNegative;
if(reverseX>INT_MAX)return INT_MAX;
else if(reverseX<INT_MIN)return INT_MIN;
return (int)reverseX;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: