【题目】
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; } };
LeetCode 007 Reverse Integer,布布扣,bubuko.com
时间: 2024-10-26 21:26:32