题目:
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
class Solution {
public:
int reverse(int x) {
int flag = 1;
int result = 0;
if(x < 0) {
flag = -1;
x = x * flag;
}
while(x != 0) {
result = result * 10 + x % 10;
x = x / 10;
}
return result * flag;
}
};
其实这道题目的提示才是重点:
(1)一个数字如果结尾为0,怎么办
(2)如果reverse后溢出,怎么办
在面试的过程中,应该首先向面试官提出这两个疑问,问清楚是否需要考虑这两种特殊情况,这样给面试官留下一个“你是一个思维严谨的人”的印象
对于溢出的问题,reverse后判断result是否小于0,如是,则判断为溢出。